bash

Fórumok

Sziasztok!

Annyi kérdésem volna, hogy hogyan tudom bash-ben kezelni a lefuttatott program visszatérési értékét.
Azaz lefutott-e rendben, avagy sem.

Köszi

Hozzászólások

if grep valami *.txt >/dev/null; then echo 1; else echo 0; fi

Vagy ha csak a hibás futársól kell tájékozódni:

grep valami *.txt >/dev/null || echo "nem futott le rendesen!";
vagy:
grep valami *.txt >/dev/null && echo "rendesen futott le!";

--
"Az a szóbeszéd járja Amerikában, hogy két intelligens faj létezik a földön: emberek és magyarok." by Isaac Asimov

Ez tök jó meg minden, de most látom, hogy pl. a wput, vagy wget nem így működik.
Hiába nem tudta letölteni a filet, a program rendesen lefutott ezért 0-val tér vissza. Feltöltésnél dettó.
Pont azt szeretném megtudni, hogy feltolta-e a filet, mert ha nem akkor alternatív megoldás...

"de most látom, hogy pl. a wput, vagy wget nem így működik."
A wget pontosan így működik, és a wput is. Olvass bele a manba.

man wput:
"DIAGNOSTICS
Normally, the exit status is 0 if either everything went fine or there was nothing to do. If some files were skipped during the upload (due to timestamping or resume-rules) the exit status is set to 1. If some files failed to be transmitted due to an remote error, exit status is 2. If some files failed and some others were skipped, exit status is 3. For general problems like failure of some system-functions the exit status is 4."

Próbáld ki:


wget 'http://www.hup.hu/' ; echo $?
wget 'http://www.hup.hu/nemletezo' ; echo $?
wput testfile 'ftp://user:pass@ftpsite' ; echo $?
wput testfile 'ftp://user:badpass@ftpsite' ; echo $?


# wget -V | grep Wget
GNU Wget 1.11.4
# wput -V
wput version: 0.6

az utolsonak lefuttatott progi visszateresi erteket a $? tartalmazza
/* bocs az esetleges helyesirasi hidakert */

Nagyon köszi a segítséget, ez kellett nekem!

<1 leszel, vagy 0. vagy élő, vagy hulla>