Bur: Ergebnisse abfangen UNIX

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

  1. 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

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. 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....

      1. 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

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
  2. 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";

    1. 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!

  3. 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

    --
    "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
  4. 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öö