Portál AbcLinuxu, 14. května 2025 01:02

Dotaz: Proměnné ve scriptu

25.11.2006 16:19 Radim240 | skóre: 9
Proměnné ve scriptu
Přečteno: 125×
Odpovědět | Admin
Zdravím. Chtěl bych napsat příkaz, který mě bude informovat pokud nastane chyba. Ale je tu problém, že nevím co přesně znamenají tyto zápisy: $?, $@, $# .

Myslím, že to $@ vrací celý řádek s parametry, ne? Ale to ostatní? No, já upotřebuji hlavně příkaz aby vrátil „errorlevel“ posledního příkazu např.: lilo

if [ “$?” ==”0” ] ; then echo “OK”; else echo “ERROR $?”; fi;
Toto je jen příklad, ale když jsem zkoušel něco podobného tak mi to psalo ERROR 0 místo ERROR n když lilo nahlásil chybu.
Dík za odezvu.

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

Odpovědi

25.11.2006 16:43 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Proměnné ve scriptu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Záleží jaký skript každý to může mít jinak.

bash:

$# počet argumentů

$0 jméno příkazu

$1, $2....$9 argumenty příkazu

$* seznam všech argumentů jako jedno slovo

$@ seznam všech argumentů jako posloupnost slov

$? návratový kod posledního příkazu

$$ identifikace aktuálního procesu
25.11.2006 17:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Proměnné ve scriptu
Odpovědět | | Sbalit | Link | Blokovat | Admin
když jsem zkoušel něco podobného tak mi to psalo ERROR 0 místo ERROR n když lilo nahlásil chybu

Nejspíš jste mezitím spustil nějaký další příkaz a $? tím pádem expandovalo na jeho návratový kód a ne na návratový kód toho příkazu lilo. Buď si ten návratový kód nejdřív uložte do proměnné nebo to rovnou napište jako

  if /sbin/lilo; then echo OK; else echo "error $?"; fi
26.11.2006 10:09 Radim240 | skóre: 9
Rozbalit Rozbalit vše Re: Proměnné ve scriptu
Skvělé, díky.

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.