Portál AbcLinuxu, 12. května 2025 04:19

Dotaz: Jak na chyby v BASHi

9.2.2014 18:40 Zadejte vaše jméno
Jak na chyby v BASHi
Přečteno: 214×
Odpovědět | Admin
Ahoj, mám něco takového, kde potřebuji zachytit všechny chyby a uložit je do souboru err.log. Jenže se tak neděja :-( Jak to má být správně? Díky za info.
fce4(){
 FOO="Chyba!
}

fce3(){
 fce4
}

fce2(){
 fce3
}

fce1(){
 fce2
}

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

Odpovědi

9.2.2014 19:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zápis FOO="Chyba! je blbě s ohledem na uvozovky.

Proměnná FOO nemá důvod odcházet na stderr
Pokud zápis opravíš na:

echo "Chyba!" >&2
tak se už něco stane.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
9.2.2014 20:37 Zadejte vaše jméno
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
Právě že jsem poukazoval na tu chybu v tom řádku záměrně... ale v logu nic nemám :-( ani pokud tam bude jiná chyba...
9.2.2014 20:42 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
Pokud tam nemáš tu uvozovku, tak se ti rozhodí celý script a žádné funkce neexistují.
Při jeho spuštění dostaneš něco jako:
./kuk.bash: line 4: unexpected EOF while looking for matching `"'
./kuk.bash: line 21: syntax error: unexpected end of file
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
9.2.2014 20:44 NN
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
Ten skript je syntakticky spatne. Pokud chces videt chybovy vystup, muzes to udelat takto:
./spatny_skript.sh 2> chyba
9.2.2014 20:57 Zadejte vaše jméno
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
A v čem přesně je ten skript syntakticky špatně ?
9.2.2014 21:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
Schází ta uvozovka.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
9.2.2014 23:42 potato
Rozbalit Rozbalit vše Re: Jak na chyby v BASHi
Odpovědět | | Sbalit | Link | Blokovat | Admin
bash -n skript

Teprve když toto vrátí exit status 0, tedy skript je syntaticky bez chyb, má smysl ošetřovat běhové chyby, protože teprve tehdy obsah skriptu něco definovaného znamená.

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.