Portál AbcLinuxu, 10. května 2025 08:20

Dotaz: RETVAL=$?

24.9.2008 13:54 Ody Odyseus | skóre: 2
RETVAL=$?
Přečteno: 293×
Odpovědět | Admin
Příloha:
Zdravim,

vytvoril som si start-stop skript pre RedHat Linux na zaklade jedneho example skriptu. V tomto skripte je uvedena premenna:

RETVAL=$?

ktorej nedokazem porozumiet. Vedel by mi niekto vysvetlit co sa vlastne uklada do premennej a co je premenna RETVAL ?

Example start-stop script:

#!/bin/sh

# chkconfig: 345 27 10 # description: testing

start () { echo "bruce script has started" >> /opt/start.txt RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/bruce return $RETVAL }

stop () { echo "bruce script has stoppped" >> /opt/stop.txt RETVAL=$? echo [ $RETVAL = 0 ] && rm -rf /var/lock/subsys/bruce }

case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: $0 {start|stop|restart}" esac

Vdaka 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

24.9.2008 14:09 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: RETVAL=$?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Konstrukce $? obsahuje návratovou hodnotu naposledy provedeného příkazu. Její hodnota se pak může použít pro testovaní úspěchu či neúspěchu provedení předchozího příkazu a tím podmínit vykonání jiného příkazu, jak je to mimochodem uvedeno ve vašem scriptu.
24.9.2008 14:14 pifko
Rozbalit Rozbalit vše Re: RETVAL=$?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten skriptik nevim presne, ale $? vraci vystupni hodnotu naposledy spusteneho prikazu (ktera bude ulozena v promenne RETVAL).
24.9.2008 14:55 Ody Odyseus | skóre: 2
Rozbalit Rozbalit vše Re: RETVAL=$?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vdaka za odpovede. Zasa som o skusenost bohatsi. :)
24.9.2008 16:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: RETVAL=$?
Doufám, že ta zkušenost zní "příště se nejdřív podívám do dokumentace".
24.9.2008 16:27 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: RETVAL=$?
Odpovědět | | Sbalit | Link | Blokovat | Admin
k tomu bych jeste dodal, proc se to $? uklada do RETVAL a netestuje rovnou. je to prave o tom, ze $? obsahuje navratovou hodnotu POSLEDNIHO prikazu, a kazdy dalsi prikaz ji premaze. pokud chcete mezi prikazem a testovanim provest dalsi veci, musite si $? nekam ulozit.
In Ada the typical infinite loop would normally be terminated by detonation.
frEon avatar 25.9.2008 01:18 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: RETVAL=$?
Odpovědět | | Sbalit | Link | Blokovat | Admin
urcite narazis jeste na par dalsich promennych, jako je treba $!, $$, $* atd... jejich vysvetleni najdes zde
Talking about music is like dancing to architecture.

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.