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.
sleepest un problème différent: en écrivant via un tube, les données ne sont pas mises en tampon en ligne, et lesleepagit pour rendre cela apparent.