Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: script 24. 01. 2014, 08:01:18
-
Mam problem s vyresenim nasledujiciho-potrebuju smerovat stdout z perlovskeho scriptu do pipe, kde se cte radek po radku a zapisuje do souboru i s datume (to funguje jak ma) Jenze v promene $? exit code scriptu je vzdy nula, i prez to, ze perlovsky script skoncil s exit code ruznym od 0 (tzn chybou). Zrejme se do promene $? dostane vysledek prikazu while nebo echo ktery probehne jako posledni bash prikaz pred vyhodnocenim. Nevite nekdo jak na to?
./generate-conf.pl -f 01-conf.conf -i -o | while read line; do
echo "`date` ${line}" >> generate-conf.log;
done
if [ "$?" == 1 ]; then
echo "Generate Error!";
exit;
fi
echo "Generate successfull"
-
tak ten vystup z perlu hod do nejakeho souboru, v klidu si zjisti jeho $?, a pak delej neco dalsiho
-
${PIPESTATUS[0]}
-
Dalsi soubou, prez ktery bych to ukladal a testoval nechci, kdyz to mam prez rouru.
PIPESTATUS - toje vono dela presne co potrebuju skveli dikec.
-
pokial to je v bashi, tak sa existuje prepinac set -o pipefail - potom premenna $? obsahuje exitstatus posledneho prikazu v pipe, ktory skoncil non-zero exitstatusom. inac $?=0. dufam, ze chapes :D