In Bash können Sie einen Befehl mit dem Namen clear
ausführen, um alle Bildschirmbefehle zu löschen.
Und mit können echo
Sie alles, was Sie wollen, auf dem Bildschirm drucken.
In meinen einfachen Skripten muss ich oft einen Prozentsatz dessen drucken, was mit meinen Befehlen gemacht wird.
Also könnte ich so etwas machen wie ..
echo "89%"
echo "90%"
echo "91%"
und so weiter..
Ich hasse es, den Bildschirm mit prozentualen Updates zu füllen ...
89%
90%
91%
...
Ich möchte erfahren, ob es eine Sonderzeichenkombination gibt (z. B. "\ 033 [01; 31m"), die mit Bash- oder PHP-Echo wiedergegeben werden kann und der Konsole mitteilt, dass das letzte zuvor gedruckte Zeichen entfernt werden soll.
Verwenden Sie dazu Folgendes: (PHP-Beispiel)
echo str_repeat($neg_character, strlen($last_percentage_update_string));
echo $new_percentage_update_string;
Ich würde die neue Zeichenfolge genau an der Position der vorherigen drucken lassen, ohne dass der Bildschirm voller Zeilen wäre
Ansonsten suche ich nach einem Ansatz, um dasselbe auf andere Weise zu tun, wobei ich immer Bash- und PHP-Skripte verwende (bitte geben Sie aktuelle Arbeitsbeispiele an, zumindest mit einer Debian9-Konsole und PHP7).
tput cub 3
um die Verschiebung cu RSOR b ack von 3 Spalten , ohne die Sequenz zu codieren, die (undtput el
zu e raste die L ine).\e
nicht tragbar 2. ist auch nicht\e[0E
ech
zum Löschen verwenden. Und um 3 Positionen rückwärts zu gehen hat ein Problem und zwei mögliche Optimierungen, die Vollbildprogramme normalerweise verwenden. Aber sowohl Optimierungen als auch Löschvorgänge sind für einfache Terminal-Inhalte nur für aktuelle Leitungen übertrieben, wenn man diesen Ratschlägen zur Verwendung eines Formatbezeichners mit fester Breite folgt. Vergessen Sie nicht, dass100
das übrigens 3 Stellen lang ist. (-: