systaxe fce system

David Olszyński hisaak na mrkvoslav.ascs.muni.cz
Středa Únor 27 17:46:52 MET 2002


Pavel Reznicek wrote:

> $result=`/usr/bin/adduser $jmeno -g popusers -c $jmeno`;
> nezkousel jsem to, ale jsem presvedcen, ze to pojede.
> mozna ze ve vasi distribuci bude potreba potlacit nejakym prepinacem
> confirm otazky od prikazu adduser, ale to uz musite vyzkouset sam. 

A muzu se zeptat, v cem je rozdil oproti volani system() s jednim 
parametrem? Je to myslim totez, akorat temi zpetnymi uvozovkami navic 
zachytite standardni vystup, ktery u useradd stejne nema smysl.

Ja si spise myslim, ze ty zpetne uvozovky vam starosti s uvozovkami a 
apostrofy obecne pridelaji. Posudte sam:
$ touch 'ahoj vsichni!'
$ ls 'ahoj vsichni!' 
ahoj vsichni!
$ perl
$file = 'ahoj vsichni!';
`ls $file`;
__END__
ls: ahoj: není souborem ani adresářem
ls: vsichni!: není souborem ani adresářem

Jak muzete videt, nedela to to, co by clovek mozna cekal. Oproti tomu 
pouziti system() s vice parametry vam usetri problemy:
$ perl
$file = 'ahoj vsichni!';
system('ls', $file);
__END__
ahoj vsichni!

David Olszynski



Další informace o konferenci Perl