linux-l: Übergabe von Variablen

Jens Dreger jens.dreger at physik.fu-berlin.de
Do Jul 20 12:40:01 CEST 2000


On Thu, Jul 20, 2000 at 11:48:55AM +0200, Manuel Tennert wrote:
>
> Funktioniert doch nicht so ganz.....wenn ich das ganze per Hand aufrufe ist
> alles OK., aber: will ich das ganze dann noch von einem C-Shell-Script
> aufrufen ist nix mehr.....das C-Shell-Script sieht wie folgt aus:
> #!.....
> /verzeichnis/main.pl $1     <---- da müßte er ja den dann wenn das
> C-Shell-Script
>                                                 aufgerufen wird den Namen
> übergeben
> Wie Du sagtest, steht dann $1 im Perl-Script unter $ARGV[0] nun will ich
> diese Variable an ein anderes Script übergeben mit:
> 
> system("./verzeichnis/main.pl $ARGV[0]");
> 
> Leider wird dieser Teil dann nicht mehr ausgeführt ! Dagegen:
> print "Das ist Datei $ARGV[0]";
> funktioniert reibungslos und der liebe Compu schreibt die Datei auf die
> verändert werden soll. Warum funktionukkelt das nich bei system(blablabla)
> ????

Verstehe ich nicht... Schau mal:

dreger at watson:~> perl -le 'system("echo Argument war $ARGV[0]")' hallo
Argument war hallo

Geht doch. Merkwuerden...

Gruss,

Jens.

PS: Man beachte, dass $Variablen nur innerhalb ", nicht aber innerhalb
' ausgewertet werden:

dreger at watson:~> perl -le "system('echo Argument war $ARGV[0]')" hallo
Argument war [0]

(weil $ARGV in der shell nicht definiert ist) sonst:

dreger at watson:~> export ARGV=blah
dreger at watson:~> perl -le "system('ARGV=blah echo Argument war $ARGV[0]')" hallo
Argument war blah[0]



Mehr Informationen über die Mailingliste linux-l