Portál AbcLinuxu, 12. května 2025 05:07

Dotaz: perl a prikaz

17.7.2003 19:37 Petr
perl a prikaz
Přečteno: 135×
Odpovědět | Admin
Ahoj,
chtel jsem si v perlu napsat skript pro automaticke pripojovani a kontrolu pripojeni ADSL. Bohuzel jsem skoncil na nasledujicim problemu (uvedu jednoduchy priklad):
#!/usr/bin/perl
`pptp 10.0.0.138`
Skript se k VPN pripoji, ale nehodla nijak skoncit. Musim ho ukoncit pomoci Ctrl-C.

Nevite nekdo, co delam spatne?
Diky za pomoc ...

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.7.2003 21:24 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše perl a prikaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
jsou dvě možnosti (a) pptp neskončí, takže neskončí ani skript. proč, to u pptp moc nevím, jak zjistit, protože ho neznám (b) narazil jsi na obskurní chybu v perlu. perl se při pouštění dalších programů chová divně, někdy provede fork(), ale druhý proces se neukončí, takže skript běží dvakrát, nebo přestane fungovat exit() a die() a skript musí ukončit sám sebe tak, že si pošle SIGKILL... v takhle jednoduchém případě se nám ale zatím tuhle chybu nepodařilo vyrobit (nejjednodušší, co umím, je použít system() uvnitř eval()), takže pochybuji, že je to důvod -- ale člověk nikdy neví. btw `příkaz` je poměrně praštěná metoda pouštění programů, nebude lepší napsat to v shellu?
17.7.2003 22:10 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
Rozbalit Rozbalit vše perl a prikaz
jakej by byl rozdíl mezi

`prikaz`

a

system("prikaz");

?

jinak bych se připojil k ,,výzvě'' - napsat to radši v bashi

Dík
Jáchym

17.7.2003 22:20 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše perl a prikaz
`prikaz`;
(== qx(prikaz)) vrátí stdout příkazu (a zahodí)
system('prikaz');
vrátí návratovou hodnotu příkazu (+ cosi, viz perldoc -f system) (a zahodí) je zbytečné nechat si načítat stdout, když ho pak stejně zahodím.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.