Filtern von showrev -p

showrev -p | cut -d" " -f1,2 |while read var; do ((x++));if [ $(($x % 4)) -eq 0 ]; then echo $var;else echo -ne "$var\t"; fi;done&6echo

das ist genau das was ich benötige!
danke! wenn das ganze nun direkt wieder zur bash "springen würde"
also ohne die Ausgabe
Patch: 120286-02 Patch: 119262-03
[2]+ Done showrev -p | cut -d" " -f1,2 | while read var; do
((x++)); if [ $(($x % 4)) -eq 0 ]; then
echo $var;
else
echo -ne "$var\t";
fi;
done

am ende - dann wäre ich "Glücklich" :-)
"Hallo
Du kannst nicht mal eine Datei mit den paar Zeilen Script erzeugen?
Da verstehe ich sicher etwas falsch."
das war schon richtig so! ich habe nicht die Möglichkeit scripte auf den zu überprüfenden Maschinen abzulegen.
Daher nur über shellkomando -
 
Zuletzt bearbeitet:
Hallo

Naja ich verstehe wohl heute etwas schwer.
Du willst eine formatierte Ausgabe, aber diese Unterdrücken?
In eine Datei umleiten?
Ich denke du kannst keine Datei ablegen?
Local würde ich einfach ein Redirect anfügen.

echo "foo baar">datei

Irgendwie verstehe ich dein Anliegen nicht so recht.
Gruß Wolfgang
PS Ach ja, wichtig ist halt, dass x=0; vorher jedesmal neu gesetzt wird.
 
Zuletzt bearbeitet:
hmm - kann auch sein das ich einfach nicht in der Lage bin das ganze richtig zu Beschreiben:-)!

ich Benötige einen Simplen shell Befehl um die Patchliste wie oben beschrieben in 4 Spalten als Simple Ausgabe auf dem x-term habe.
Beispiel
[/]# ls
bin@ dev/ etc/
[/]#

statt dem ls nun der Befehl für die Patchliste in 4 Spalten

also
[/]#
[/]#showrev -p | cut -d" " -f1,2 |while read var; do ((x++))......
Patch 01 Patch02 Patch03 Patch04
[/]#
[/]#

Die Liste soll in keine Datei geschrieben werden sondern nur Aufgelistet werden - so dass ich danach den nächsten Befehl (z.b. ls) ausführen kann.

Aber denke die Lösung wurde (fast) schon aufgeführt.
Wie vorhin geschrieben nur ohne die Ausgabe am Ende

Patch: 120286-02 Patch: 119262-03
[2]+ Done showrev -p | cut -d" " -f1,2 | while read var; do
((x++)); if [ $(($x % 4)) -eq 0 ]; then
echo $var;
else
echo -ne "$var\t";
fi;
done

da sollte er nach der eingabe des Befehls direkt zur neuen Eingabemöglichkeit kommen
[/]#
[/]#
 
Zuletzt bearbeitet:
Hallo

Das [2]+ Done war mir untergegangen.

(Bitte benutze doch quote oder code Tags, dann wird es übersichtlicher.)
Ich kenne showrev nicht, und die Onlinemanpage sagt nicht über diese Ausgabe.
Das schaut aber aus, als ob das als Job läuft (also im Hintergrund).
Wie man das unter Solaris händelt, überfragt mich ehrlich gesagt.

Sollte es eine Ausgabe aus STDERR sein, dann könntest du die ja nach /dev/null schieben.

Gruß Wolfgang
 
das letzte echo bei
showrev -p | cut -d" " -f1,2 |while read var; do ((x++));if [ $(($x % 4)) -eq 0 ]; then echo $var;else echo -ne "$var\t"; fi;done&echo
war zuviel.
ohne das letzte echo springt er wieder in die Eingabe!.

Was du mit
PS Ach ja, wichtig ist halt, dass x=0; vorher jedesmal neu gesetzt wird.
meintest versteh ich nicht ganz?.
ich nutze den Befehl wie oben aufgelistet immer - und bekomm auch immer das gleiche ergebniss, ohne jedesmal etwas auf 0 zu setzen. Also denke momentan passt das so.
thx
 
Hallo

Das letzte echo ist dafür da, auch angefangene Zeilen umzubrechen.
Du hast nur die "" vergessen. Schau mal genau hin, ich habe die nämlich da stehen. (auch wenn mir sonst oft Fiptehler passieren)
;)
Variablen sollten immer vorher initialisiert werden.
Wenn in deiner Shell schon ein x mit einem Wert existiert, kann das in die Hose gehen.

Gruß Wolfgang
 
jope das stimmt - mit "" am Ende klappt es auch.
Das mit dem x- scheint mir jetzt auch klar zu sein.
Nun müsste der Befehl noch aus der ksh funktionieren:-)


Lösung für ksh sind bash -c '<befehl>'

thx <closed>
 
Zuletzt bearbeitet:
Hallo ihr zwei,

ich möchte euch mal erlösen, ehe ihr noch weiter aneinander vorbeiredet :D

showrev -p | cut -d" " -f1,2 |while read var; do ((x++));if [ $(($x % 4)) -eq 0 ]; then echo $var;else echo -ne "$var\t"; fi;done&6echo

likwitt guck Dir mal den Code an - da ist am Ende (hinter done ein &6echo. Das &-Zeichen weist die Shell an einen Prozess in den Hintergrund zu schicken, sobald der Prozess fertig ist kehrt er mit einer Ausgabe a la [1]+ Done zurück, in Deinem Fall [2]+ Done.

Achte mal genau drauf, dass wenn Du das Kommando abtippst bzw. per Copy&Paste einfügst, es auch so in Deiner Shell ankommt.

...den weiteren Text kann ich mir ersparen, da ich wohl etwas zuuuuuu langsam war *lach*
 
Jo, also doch wieder ein Fiptehler von mir, aber nur in der Version 1 (2 Spalten)
Ach @Schlaubi_fi.de wenn ich dich nicht hätte. ;)
Es muss natürlich ein && sein (logische UND Verknüpfung)

Gruß Wolfgang
 
@ Wolfgang

Vorschlag: wir ernennen Schlaubi_fi.de zum Shellskript-Lektor ehrenhalber. ;)
 

Ähnliche Themen

OpenVPN Zertifikate

Zurück
Oben