Portál AbcLinuxu, 8. května 2025 20:22

Dotaz: Jak na exit or error v BASH/Shell

10.4.2013 21:35 OIO
Jak na exit or error v BASH/Shell
Přečteno: 310×
Odpovědět | Admin
Ahoj,

mam soubor aaa.sh ze kterého spouštím soubor bbb.sh ccc.sh atd.., jelikož ale soubory spouštím, nesourcnu je, tak nevím jak mám odchytit exit nebo error spuštěného souboru v souboru aaa.sh. Neporadí někdo? Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 10.4.2013 21:44 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na exit or error v BASH/Shell
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus si:
> if ! false; then echo a; fi
a
> if ! true; then echo a; fi
10.4.2013 21:46 OIO
Rozbalit Rozbalit vše Re: Jak na exit or error v BASH/Shell
a dál?
Jendа avatar 10.4.2013 21:51 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na exit or error v BASH/Shell
Pak místo echo a dej exit 1. Takhle můžeš volání řetězit ;)
10.4.2013 21:58 OIO
Rozbalit Rozbalit vše Re: Jak na exit or error v BASH/Shell
Jako takto?

obsah souboru aaa.sh
# !/bin/bash

# spustim script
bbb.sh

# provedu kontrolu
if ! true
then
 exit 1
fi


# spustim script
ccc.sh

# provedu kontrolu
if ! true
then
 exit 1
fi


# spustim script
ccc.sh

# provedu kontrolu
if ! true
then
 exit 1
fi


# spustim script
ddd.sh

# provedu kontrolu
if ! true
then
 exit 1
fi

a pak ještě asi 100000000x

Jendа avatar 10.4.2013 22:37 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na exit or error v BASH/Shell
# spustim script
bbb.sh

# provedu kontrolu
if ! true
then
 exit 1
fi
# provedu kontrolu
if ! bbb.sh; then
 exit 1
fi
a pak ještě asi 100000000x
Cykly? Pokud to musíš dělat tolikrát, možná je ten skript špatně navržený.
10.4.2013 22:30 Logik
Rozbalit Rozbalit vše Re: Jak na exit or error v BASH/Shell
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejjednodušší je

bbb.sh && ccc.sh && ddd.sh

nebo pokud to děláš nějakým cyklem tak použij proměnou $? vracející exit code posledního příkazu:
for x in *.sh ; do 
    $x
    if [[ $? -ne 0 ]] ; then break fi
done

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.