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