Mon script bash contient la commande clear
, qui lorsquelle est exécutée via dialog
donnera des lettres étranges. Comment puis-je encore utiliser la commande clear
sans voir cette sortie dans la boîte de dialogue?
Voici un exemple de la façon de produire ceci:
#!/bin/bash echo "starting..." clear echo "" echo "End"
Je « m utilise le dialog
sorte de comme ceci:
bash /tmp/1.sh | dialog --progressbox 30 80
Réponse
Vous pouvez rediriger la sortie de clear
vers le terminal:
#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End"
clear
écrit sur sa sortie standard, qui (lorsquelle est redirigée de cette manière) peut être différente du la sortie standard du script.
sleep
est un problème différent: en écrivant via un tube, les données ne sont pas mises en tampon en ligne, et lesleep
agit pour rendre cela apparent.