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
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.
sleep
este o problemă diferită: scrierea printr-o conductă, datele nu sunt tamponate de linie, iarsleep
acționează pentru a face acest lucru evident.