Mein Bash-Skript enthält den Befehl clear
, der bei Ausführung über dialog
führt zu seltsamen Buchstaben. Wie kann ich den Befehl clear
weiterhin verwenden, ohne diese Ausgabe im Dialogfeld zu sehen?
Dies ist ein Beispiel für die Erstellung dieses Befehls:
#!/bin/bash echo "starting..." clear echo "" echo "End"
Ich verwende die dialog
wie folgt:
bash /tmp/1.sh | dialog --progressbox 30 80
Antwort
Sie können die Ausgabe von clear
an das Terminal umleiten:
#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End"
clear
schreibt in seine Standardausgabe, die sich (wenn sie auf diese Weise umgeleitet wird) von der unterscheiden kann Die Standardausgabe des Skripts.
Kommentare
- Es funktioniert fast für mich, weil Sie aus irgendeinem Grund ' sleep ' Befehl auch zwischen echo ' s Befehl der Dialog völlig verzerrt. Fügen Sie einfach ' sleep 1 ' zwischen dem Echo-Befehl und see hinzu, um ihn zu simulieren.
-
sleep
ist ein anderes Problem: Beim Schreiben durch eine Pipe werden die Daten nicht zeilengepuffert, und diesleep
macht dies deutlich.