Výstup skriptu a ukončení aplikace

script

Výstup skriptu a ukončení aplikace
« kdy: 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?
Kód: [Vybrat]
./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"
« Poslední změna: 24. 01. 2014, 14:32:09 od Petr Krčmář »


brmlm

Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
« Odpověď #1 kdy: 24. 01. 2014, 08:12:07 »
tak ten vystup z perlu hod do nejakeho souboru, v klidu si zjisti jeho $?, a pak delej neco dalsiho

BeeVee

Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
« Odpověď #2 kdy: 24. 01. 2014, 08:17:48 »
${PIPESTATUS[0]}

script

Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
« Odpověď #3 kdy: 24. 01. 2014, 08:56:11 »
Dalsi soubou, prez ktery bych to ukladal a testoval nechci,  kdyz to mam prez rouru.

PIPESTATUS - toje vono dela presne co potrebuju skveli dikec.

samalama

Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
« Odpověď #4 kdy: 24. 01. 2014, 13:30:00 »
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