system/exec
Honza Pazdziora
adelton na informatics.muni.cz
Středa Srpen 21 13:44:54 MEST 2002
On Wed, Aug 21, 2002 at 01:23:58PM +0200, Jiri Polcar wrote:
>
> resim zahady s fci `system/exec'.
>
> kdzy fci zavolam:
>
> exec("/usr/bin/perl", qq[ -e print "Pepa z Depa.\n";] );
>
> skript skonci s hlaskou:
>
> Can't open perl script " -e print "Pepa z Depa.
> ";": No such file or directory
>
> Zatim co, kdyz fci zavolam jako:
>
> exec("/usr/bin/perl", qq[-e print "Pepa z Depa.\n";] );
>
> (lisi se pouze mezerou pred "-e"), tak Perl spravne pochopi, ze -e je option,
> navic ise retezec za "-e" se nemusi uzavirat do zadnych apostrofu/uvozovek.
>
> Zajimalo by me, obecne chovani fci system/exec, vzhledem k jejich parametrum.
Je to popsano v perlfunc(1), doporucuji procist.
Obecne plati, ze pokud execu predate vice nez jeden parametr, tak je
tento seznam predan tak jak lezi a bezi execvp(3) a neprovadi se
expanze metaznaku shellem ani split podle mezer. Cili co Vy
efektivne zkousite je ekvivalentni nasledujicimu na prikazovem radku:
$ /usr/bin/perl ' -e print "Pepa z Depa.\n";'
Can't open perl script " -e print "Pepa z Depa.\n";": No such file or directory
$ /usr/bin/perl '-e print "Pepa z Depa.\n";'
Pepa z Depa.
Tedy spoustite /usr/bin/perl a davate mu jeden parametr prikazoveho
radku, ' -e print "Pepa z Depa.\n";' resp '-e print "Pepa z Depa.\n";'.
No a v perlrun je receno, ze parametry perlu zacinaji minuskem, z cehoz
plyne, ze pokud parametr prikazoveho radku nezacina minuskem, tak ho
ma perl chapat jako jmeno souboru. Cili v prvnim pripade nejde
o parametr perlu, ale o jmeno souboru (ktery neexistuje), a ve druhem
pripade jde o parametr perlu.
To, ze retezec za -e se nemusi uzavirat do uvozovek je zpusobeno tim,
ze to cele je jeden parametr perlu. Cili nespoustite
$ /usr/bin/perl '-e' 'print "Pepa z Depa.\n";'
ale
$ /usr/bin/perl '-e print "Pepa z Depa.\n";'
neboli
$ /usr/bin/perl '-eprint "Pepa z Depa.\n";'
Jako ten radek, ktery se ma provest, se totiz vezme budto to, co
bezprostredne nasleduje za e, nebo nasledujici parametr.
Hmmm. Pokud jsem to vic znejasnil nez vyjasnil, tak se prosim ptejte.
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
... all of these signs saying sorry but we're closed ...
------------------------------------------------------------------------
Další informace o konferenci Perl