Shell Script ausgabe

R

RedRaptor

Aktives Mitglied
Thread Starter
Dabei seit
16.08.2010
Beiträge
123
Reaktionspunkte
6
Hallo Leute,

ich benötige wieder euere Hilfe.

Hinweise:

- OS: Mac OSX 10.6.4
- Ich will keine GUI, das Ganze soll im Terminal ablaufen
- ich benutze kein AppleScript. Es ist alles über das Terminal (nano) geschrieben und so soll es auch bleiben


Programmbeschreibung:

Ich habe ein Script das mir mit Hilfe des echo-Befehls eine Ausgabe macht.

z.B.

Code:
echo $xyz

Vor dem Echo wird das $xyz berechnet.
Dieses Echo liegt innerhalb einer Schleife die natürlich öfter an diese Stelle kommt.

Bei einem erneuten Durchlauf der Schliefe wird der Wert für xyz erneut berechnet und kommt auf ein anderes Ergebnis.

Beispiel:
Durchgang1: 5
Durchgang2: 7

Das sieht dann in der Ausgabe im Terminal wie folgt aus:

Code:
5
7

Problembeschreibung:

Soweit so gut. Jedoch hätte ich gerne das ich nicht für jeden Durchgang eine neue Zeile bekomme.
Sprich soll anstatt der 5 nun die 7 erscheinen. Wie im obigen Beispiel erscheinen jedoch die Werte untereinander.

Ich stelle mir die Lösung so vor:
Eine art Feld dessen Wert sich ändern kann

Damit könnte ich jedoch auch leben, wenns auch nicht so schön wäre.
Der Wert wird direkt hinter die andere geschrieben (ohne Zeilenumbruch).

Ich möchte im übrigen darauf hinweisen, das die Ausgabe des Wertes während die Schleife läuft zwingend erforderlich ist. Somit ist ein "lass doch die Schleife zuende rechnen und lass es dir dann zum Schluss ausgeben" nicht möglich.
 
pack mal ein \033[2J vorne mit in die ausgabe und guck, es dein problem löst...
 
Das ist nicht ganz das was ich mir vorstelle. Allerdings ist das vom Prinzip eine gute Idee. Nur zum verständiss meinerseits, habs mir nur kurz mal gegoogelt
\033 ist das ESC zeichen
[ erlaubt mir eine steuersignal an das terminal zu senden
2J....macht wohl das neue fenster -->same as clear
kann ich diese hier benutzen? http://tldp.org/HOWTO/Text-Terminal-HOWTO-22.html#esc_seq_lists
bekomme das leider nicht ganz gebacken auf der shell...
ESC M wäre genau das was ich brauche..


Danke für die antwort
 
\033m
... ;)
warum auch immer der das hier automatisch in klein m wandelt, statt einem M ...
 
danke dir! das ist genau das was ich wollte.
Perfekt!
 
Das kann man auch mit "printf" lösen.

Code:
printf "%s\r" $xyz

--wurzel
 
echo -n hallo
 
Zurück
Oben Unten