Wywołuję skrypt Pythona z poziomu skryptu powłoki. Skrypt python zwraca kody błędów w przypadku awarii.Obsługa kodu wyjścia zwracanego przez pythona w skrypcie powłoki
Jak obsłużyć te kody błędów w skrypcie powłoki i zamknąć go w razie potrzeby?
Wywołuję skrypt Pythona z poziomu skryptu powłoki. Skrypt python zwraca kody błędów w przypadku awarii.Obsługa kodu wyjścia zwracanego przez pythona w skrypcie powłoki
Jak obsłużyć te kody błędów w skrypcie powłoki i zamknąć go w razie potrzeby?
Kod zakończenia ostatniego polecenia jest zawarty w $?
.
skorzystać z poniższego kodu pseudo:
python myPythonScript.py
ret=$?
if [ $ret -ne 0 ]; then
#Handle failure
#exit if required
fi
To znaczy, the $?
variable?
$ python -c 'import foobar' > /dev/null
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named foobar
$ echo $?
1
$ python -c 'import this' > /dev/null
$ echo $?
0
Nie rób tego. Po prostu użyj 'if python myPythonScript.py; następnie ... fi' lub 'python myPythonScript.py || ... ' –
Hmm ... z moim podejściem, możesz wybrać różne procedury obsługi błędów z różnymi wartościami kodów wyjścia. na przykład możesz zignorować niektóre banalne kody błędów. Twoje podejście jest jednak technicznie poprawne w stosunku do jego wymagań. – anishsane
To jest dokładnie to, czego potrzebowałem. Dzięki, Anishane. – SpikETidE