2014-01-10 31 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脚本没有太多的经验。 –