2014-01-10 53 views
-1

我有python程序,它從shell運行。 當python出現錯誤時,它會退出(1)或其他內容,並且我需要shell程序才能得到該答案,如果出現錯誤,請再次運行此程序。在shell中獲取從Python退出(1)

+0

你在寫shell腳本嗎? – user2357112

+0

兩者,python程序和shell腳本 –

+0

是的,但真正的問題是關於shell腳本。 – glglgl

回答

1

退出代碼可以在$找到?看下面的例子:

python yourprogram.py 
if [[ $? != 0 ]] ; then 
    dosomething 
fi 
+0

非常感謝。所以,shell腳本自動獲取退出編號,我用它與$? = 1,現在效果很好。 –

+2

@EminMastizada我會接近標準工作,而不是檢查'== 1',而是'!= 0'。通常,退出代碼0表示成功,任何其他值表示失敗或特殊條件,其中每個值的含義由被調用的程序定義。所以如果你只是想檢查失敗,那麼做。如果1具有2以外的其他含義,則只檢查'= 1'。 – glglgl

+0

(特別是OP說「或其他」,所以退出代碼不限於1,它也可以有其他值。) – glglgl

1

在這種情況下,Python沒有什麼特別之處。您捕捉退出代碼與其他任何程序:

  • 要麼你評估$?,你直接擁有這些代碼,如sanyi's answer,或
  • 你嵌入程序調用在ifwhile條件,其中其非零岬檢查:

    if ! python yourprogram.py; then 
        dosomething 
    fi 
    
+0

當我搜索這個,在大多數地方他們從python調用shell腳本,並且它不是我的項目的好解決方案。而且我對shell腳本沒有太多的經驗。 –