Il mio script bash contiene il comando clear
, che quando viene eseguito tramite dialog
risulterà con lettere strane. Come posso ancora utilizzare il comando clear
senza visualizzare questo output nella finestra di dialogo?
Questo è un esempio di come produrre questo:
#!/bin/bash echo "starting..." clear echo "" echo "End"
Sto utilizzando dialog
in questo modo:
bash /tmp/1.sh | dialog --progressbox 30 80
Risposta
Puoi reindirizzare loutput di clear
al terminale:
#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End"
clear
scrive nel suo standard output, che (se reindirizzato in questo modo) può essere diverso dal output standard dello script.
sleep
è un problema diverso: scrivendo attraverso una pipe, i dati non sono bufferizzati a righe esleep
agisce per renderlo evidente.