Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Bash: Wie Kommandozeile mal als Variable und mal ausgeführt?

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650

    Question Bash: Wie Kommandozeile mal als Variable und mal ausgeführt?

    In einem Bash-Skript brauche ich eine Kommandozeile einige male, also beispielsweise ein Kommando ausgeführt und danach das selbe Kommando mittels pkill gekillt:

    ...
    foo $OPTIONS $ARG
    sleep 0.1
    # Terminate foo if it is still working.
    pkill -U $UID -f "foo $OPTIONS $ARG"
    ...

    Irgendwie hatte sich nämlich das Programm (konkret wget) manchmal in den Hintergrund verabschiedet, so dass es mit pkill gekillt werden musste.
    Wenn ich aber

    ...
    COMMAND_LINE="foo $OPTIONS $ARG"
    for ARG in $ARGS ; do
    $COMMAND_LINE
    pkill -U $UID -f "$COMMAND_LINE"
    done
    ...

    versuche, dann funktioniert die Substituion nicht wie gewünscht; es wird schon in der Zeile mit COMMAND_LINE= substituiert und nicht beim $COMMAND_LINE. Mit "'" statt """ funktioniert es auch nicht.
    Wie bekomme ich die Substitution so hin, dass sie nur nach der Zeile mit COMMAND_LINE= vorgenommen wird?

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von nobody0
    COMMAND_LINE="foo $OPTIONS $ARG"
    for ARG in $ARGS ; do
    $COMMAND_LINE
    pkill -U $UID -f "$COMMAND_LINE"
    done
    ...
    Ähh, tut's nicht ein
    Code:
    COMMAND_LINE="foo $OPTIONS"
    for ARG in $ARGS ; do
      $COMMAND_LINE $ARG
      pkill -U $UID -f "$COMMAND_LINE $ARG"
    done
    schon?
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650
    Danke; das funktioniert halbwegs, denn mit

    nice -19 "$COMMAND_LINE $ARG"

    meldet nice:

    nice: ... : No such file or directory

    aber ohne doppelte Anführungsstriche funktioniert es!
    Anscheinend eine Eigenwilligkeit von nice, denn mit echo sehe ich keinen Unterschied zwischen der Version mit und ohne doppelte Anführungsstriche.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •