Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: script 24. 01. 2014, 08:01:18

Název: Výstup skriptu a ukončení aplikace
Přispěvatel: 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?
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"
Název: Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
Přispěvatel: brmlm 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
Název: Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
Přispěvatel: BeeVee 24. 01. 2014, 08:17:48
${PIPESTATUS[0]}
Název: Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
Přispěvatel: script 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.
Název: Re:standartni vytup scriptu do pipe a zjisteni statusu ukonceni aplikace
Přispěvatel: samalama 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