Page 1 of 1

Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-20 15:30
by kase
Folgendes Problem:

Ich habe folgende Datei test.sh:

Code: Select all

#!/bin/sh
echo $1
Nun führe ich folgenden Befehl aus:

Code: Select all

./test.sh "hallo du"
Die Bash zeigt mir "hallo du" (ohne "") an.

Nun muss ich aber den Startbefehl in eine Variable schreiben, und dann die Variable ausführen, sieht dann ca so aus:

Code: Select all

VAR="./test.sh "hallo du""
$VAR
Leider bekomme ich nach $VAR nicht die Ausgabe, die ich beim manuellen Eingeben habe, ich bekomme immer nur hallo oder hallo mit Anführungszeichen oder oder angezeigt.

Wäre über Lösungen sehr dankbar!

PS: Bitte nicht mit "nimm doch einfach $2 kommen, ich habe das Problem von mir auf einen 2-Zeiler gekürzt, im eigentlichen Script ist das leider nicht möglich.

Re: Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-20 16:08
by captaincrunch
Ich bin mir zwar nicht sicher, ob ich dich richtig verstanden habe, aber ich versuch's trotzdem einfach mal:

Code: Select all

VAR=`./test.sh "hallo du"`
$VAR

Re: Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-20 16:32
by kase
IMHO wird so (durch die ``) die Ausgabe des auszuführenden Befehls nach $VAR geschrieben, ich möchste aber, dass in $VAR lediglich der Startbefehl steht, und die Ausgabe dann ganz normal auf der Console erscheint, wie als hätte man es von Hand eingegeben.

Ich bin mir nicht ganz sicher, aber dies zB sollte mit deinem Ansatz glaube ich nicht gehen...

Code: Select all

VAR=`./test.sh "hallo du"`
$VAR
# tue irgendwas, wonach $VAR nochmals ausgeführt werden muss
$VAR

Re: Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-20 16:43
by captaincrunch
IMHO wird so (durch die ``) die Ausgabe des auszuführenden Befehls nach $VAR geschrieben
Richtig. Worauf du hinaus willst habe ich aber immer noch nicht kapiert... ;)

Re: Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-21 12:01
by thorsten
Suchst du evtl. sowas?

Code: Select all

tst:~/scripte$ VAR='./test.sh  "Hallo Du"'
tst:~/scripte$ eval $VAR
Hallo Du

Re: Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-21 15:14
by kase
eval $VAR war die Lösung ;)

Besten Dank Thorsten.

Re: Command mit Optionen in Anführungszeichen über Variable

Posted: 2004-08-21 15:16
by kase
CaptainCrunch wrote: Richtig. Worauf du hinaus willst habe ich aber immer noch nicht kapiert... ;)
Ich wollte darauf hinaus, dass ich mehr oder weniger einen Startbefehl per Variable in die Console tippen kann, so als hätte ich ihn selbst eingetippt, da dieser Startbefehl dynamisch per Variable zusammengebaut wird.