Ergebnisse abfangen UNIX
Bur
- sonstiges
Hallo da draussen,
kennt sich einer mit der bashprogrammierung aus?
wenn ja, wie kann ich die werte die aus kommandos zurück geliefert werden abfangen b.z.w weiterverarbeiten?
Hier mal ein beispiel:
ls datei-sh | tr "-" "."
liefert ja dann datei.sh aus.
Aber wie kann ich diesen abfangen um ihn dann weiter zu bearbeiten?
Danke für rat && schönes Wochenende
Hallo Bur.
kennt sich einer mit der bashprogrammierung aus?
wenn ja, wie kann ich die werte die aus kommandos zurück geliefert werden abfangen b.z.w weiterverarbeiten?
Hier mal ein beispiel:
ls datei-sh | tr "-" "."
liefert ja dann datei.sh aus.
Aber wie kann ich diesen abfangen um ihn dann weiter zu bearbeiten?
Kommt darauf an, was du vorhast. Allem Anschein nach möchtest du die Datei nach der Ersetzung in das Resultat umbenennen, was du auch direkt tun kannst:
$ mv datei-sh ls datei-sh | tr "-" "."
^ ^ Ja, Backticks.
Einen schönen Samstag noch.
Gruß, Mathias
Hallo Mathias,
aha, also Backsticks kann ich mehrere Befehle mit einander verketten?
Aber wo wird der rückgabe wert gespeichert bzw wie komme ich daran?
Also das der wert der auch ausgegeben wird irgendwie abgefangen werden kann.
Ich hoffe du weisst was ich meine....
Hallo Bur.
aha, also Backsticks kann ich mehrere Befehle mit einander verketten?
Nein, du kannst dadurch vom jeweiligen in den Backticks notierten Kommando getätigte Ausgaben direkt nutzen:
$ echo "You are here:
pwd. We are not."
Die Ausgabe des pwd-Kommandos steht dir hier also direkt zur Verfügung, kann also auch – wie dedlfix parallel erklärt – in einer Variable gespeichert werden.
Einen schönen Samstag noch.
Gruß, Mathias
echo $begrüßung;
kennt sich einer mit der bashprogrammierung aus?
Solche Fragen bringen keine Punkte. Ich kann nicht behaupten, mich mit der Bash-Programmierung auszukennen, aber dein spezielles Problem kann ich beantworten.
wenn ja, wie kann ich die werte die aus kommandos zurück geliefert werden abfangen b.z.w weiterverarbeiten?
Das was ein Kommando zurückliefert ist im Allgemeinen der Exit-Code. Du hingegen interessierst dich für die Ausgabe.
Hier mal ein beispiel:
ls datei-sh | tr "-" "."
liefert ja dann datei.sh aus.
Aber wie kann ich diesen abfangen um ihn dann weiter zu bearbeiten?
Das kommt ganz drauf an, was du damit vorhast. Du kannst die Ausgabe weiter umleiten, z.B. in eine Datei oder auf die Eingabe eines weiteren Kommandos. Du kannst sie aber auch einer Variable zuweisen. In dem Fall wird das auszuführende Kommando (oder mehrere gepipte oder wie auch immer) in Backticks eingefasst und davor die Variablenzuweisung notiert:
variable=command
echo "$verabschiedung $name";
Hi,
ja genau, das meinte ich!
Das ist ja genial, wenn ich env eingebe erschint dort meine variable und ich kann so diese weiterbearbeiten etc, Super! Danke!
Hallo,
kennt sich einer mit der bashprogrammierung aus?
wenn ja, wie kann ich die werte die aus kommandos zurück geliefert werden abfangen b.z.w weiterverarbeiten?
Hier mal ein beispiel:
ls datei-sh | tr "-" "."
liefert ja dann datei.sh aus.
Aber wie kann ich diesen abfangen um ihn dann weiter zu bearbeiten?
Naja, Du kannst die Ausgabe wieder in eine Pipe stecken und damit was anfangen (ls datei-sh | tr "-" "." | irgendeinbefehl - irgendeinbefehl würde dann "datei.sh" wie eine Tastatureingabe bekommen) oder Du kannst es in eine Variable stecken und damit was anstellen, d.h.
VARIABLE=ls datei-sh | tr "-" "."
irgendeinbefehl $VARIABLE
Oder Du kannst es direkt in Backticks an einen Befehl übergeben:
irgendeinbefehl ls datei-sh | tr "-" "."
(beachte die `, die sind nicht gleich dem '!)
Viele Grüße,
Christian
Hey,
du kannst jeden wert abfangen wie meine vorgänger auch schon schrieben.
Auch die meisten oder fast alle Kommandos liefern auch ein wert ob etwas nun erfolgreich ausgeführt wurde, das ist wichtig für die Fehlerauswertung bei der Programmierung bzw. Script.
Das bekommst du raus mit der Shell eigenen Variable $?.
z.b: echo test|tr "a-z" "A-Z";echo $? liefert dir den wert 0 für True.
echo test|tr "a-z";echo $? liefert dir 1 False weil ein Argument fehlt.
Tschöö