如何将其他脚本的输出编码为其他脚本中的条件

时间:2019-04-15 13:13:37

标签: linux bash shell

我有一个python脚本,可从参数获取输入。我可以把它作为bash脚本的if语句的条件吗?如果python脚本以错误结束(退出1),则必须触发另一个python脚本,如果python脚本以0结尾,则无需采取任何措施。我想通过bash脚本中的if条件来做到这一点。我在输入错误代码。

#!/bin/bash

if [ "python pythonscript.py argument" == 1 ]; then
 python pythonscript2.py argument
fi

exit 0

相同的参数传递给两个python脚本。 参数是类似something_Dept-envi的字符串。当我同时在没有语法错误的情况下执行任何操作时,我什么也没得到

#!/bin/bash

if [ "python pythonscript.py argument" == 1 ]; then
 python pythonscript2.py argument
fi

exit 0

如果python脚本以错误结束(退出代码1),我希望使用参数执行另一个python代码,否则退出o

1 个答案:

答案 0 :(得分:1)

停止将[视为运算符。这只是命令。但是在这种情况下,您不想使用它。您只想调用python脚本:

if python pythonscript.py argument; then
    echo executed when python return 0
else
    echo executed when python returns non-zero
fi

对于您的特定情况,您只需要:

if ! python pythonscript.py argument; then
    python pythonscript2.py argument
fi

这仅区分具有零或非零的退出,并且不检查特定的非零值。如果要在脚本以2退出时与在脚本1退出时做不同的操作,可以检查$?的值,但是最好不要这样做。