Koudink
Dalsi
Seznam
Predchozi
Autor: Tuttle (...) on 'Koudink'
Cas: Ut 20.5.2014 12:52.59
Titulek: Linux tip: Kolona v shellu bash

                                                                                 
 
Mejme skript, ktery treba za vas automaticky pravidelne spousti cron a v nem 
mate kolonu prikazu
 
prikaz | prikaz | prikaz > vystup
 
Pokud vam zalezi na tom, abyste zachytili selhani kterehokoli z prikazu 
kolony, neni mozne pouzit obvykly test na $?, protoze v parametru otaznik se 
nachazi stav posledniho prikazu kolony. A kdyz je prvnim prikazem treba tar, 
byva jeho chybovy stav zajimavejsi nez stav na chvostu.
 
Muzete za kolonu pridat
 
PIPE_STATUS="${PIPESTATUS[*]}"
 
a pozor, tento prikaz musi bezprostredne nasledovat kolonu!
 
V promenne PIPE_STATUS pak budete treba mit retezec "2 0 0", ktery uz se da 
pekne porovnavat s retezcem "0 0 0" a v pripade nerovnosti nejak hlasit.
 
Nicmene, opet je toto pripad, kdy si timto neprochazime jako prvni na 
svete, autori bashe na nas mysleli a tudiz jeste o neco praktictejsi muze byt 
na zacatek skriptu proste dat:
 
# The return value of a pipeline is the status of the last command to exit
# with a non-zero status, or zero if no command exited with a non-zero status
set -o pipefail
 
a nasledne po kolone testovat obvykle $?
 
T.

Dalsi Seznam Predchozi


[ Domu | Prstik | O Piskovisti | Deticky | Nastenky | Koutky ]