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



我有一个从参数获取输入的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

不要再把[当运算符了。 这只是一个命令。 但在这种情况下,您不想使用它;你只想调用你的 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 退出时不同的操作,您可以检查 $? 的值,但最好不要这样做。

最新更新