ștergeți comanda în dialogul consolei

Scriptul meu bash conține comanda clear, care, atunci când este executată prin dialog va rezulta cu litere ciudate. Cum mai pot folosi comanda clear fără a vedea această ieșire în casetă de dialog?

Acesta este un exemplu de cum să producem acest lucru:

#!/bin/bash echo "starting..." clear echo "" echo "End" 

Eu „folosesc un fel de dialog astfel:

bash /tmp/1.sh | dialog --progressbox 30 80 

introduceți descrierea imaginii aici

Răspuns

Puteți redirecționa ieșirea clear la terminal:

#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End" 

clear scrie în ieșirea sa standard, care (atunci când este redirecționată în acest mod) poate fi diferită de ieșirea standard a scriptului.

Comentarii

  • aproape că funcționează pentru mine, din anumite motive, dacă aveți ' sleep ', de asemenea, între comanda echo ' s dialogul complet distorsionat. pur și simplu adăugați ' sleep 1 ' între comanda echo și vedeți pentru a o simula.
  • sleep este o problemă diferită: scrierea printr-o conductă, datele nu sunt tamponate de linie, iar sleep acționează pentru a face acest lucru evident.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *