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