command in script bauen

  • hallo


    wenn ich in einem script ein einen command zusammenbauen und ausführen will, dann klappt das nicht ganz so wie ich das will.
    vereinfachtes beispiel:


    warum werden die quotes beim ausführen des scripts ausgegeben und aber beim direkten ausführen nicht?
    bzw. wie muss ich den command im script bauen, damit er exakt das selbe macht wie beim direkten ausführen?

  • Weil sie im Script escapet sind und bei Deinem direkten Befehl nicht.


    Code
    vdr01_64 ~ # echo \"hello world\"
    "hello world"
    vdr01_64 ~ # echo hello world
    hello world
    vdr01_64 ~ # echo "hello world"
    hello world
    vdr01_64 ~ #
  • ok mein konkretes problem habe ich mit virt-install. ausgeführt soll folgender befehl:

    Code
    virt-install -n vmname .... --extra-args="interface=eth0 hostname=vmhostname ..."


    wenn ich den direkt auf der console ausführe --> kein problem
    wenn ich den befehl mit escapten quotes in einem script baue und dann direkt ausführe --> argument hostname not valid
    scheinbar wird dann nur

    Code
    "interface=eth0

    als argument für die option --extra-args und nicht alles was unter den quotes steht interpretiert


    wie muss ich das nun im script bauen, damit das dann exakt das selbe ergebnis liefert?

  • Wozu denn überhaupt quoten? Schreib den Befehl so in den Skript wie du ihn in der Shell ausführst.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!