Command mit Optionen in Anführungszeichen über Variable

Bash, Shell, PHP, Python, Perl, CGI
kase
Posts: 1031
Joined: 2002-10-14 22:56

Command mit Optionen in Anführungszeichen über Variable

Post by kase » 2004-08-20 15:30

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.

captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

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

Post by captaincrunch » 2004-08-20 16:08

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
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
Posts: 1031
Joined: 2002-10-14 22:56

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

Post by kase » 2004-08-20 16:32

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

captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

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

Post by captaincrunch » 2004-08-20 16:43

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... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

thorsten
Posts: 561
Joined: 2003-02-01 13:14
Location: Fuldatal

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

Post by thorsten » 2004-08-21 12:01

Suchst du evtl. sowas?

Code: Select all

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

kase
Posts: 1031
Joined: 2002-10-14 22:56

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

Post by kase » 2004-08-21 15:14

eval $VAR war die Lösung ;)

Besten Dank Thorsten.

kase
Posts: 1031
Joined: 2002-10-14 22:56

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

Post by kase » 2004-08-21 15:16

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.