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 esleepagisce per renderlo evidente.