gpt4 book ai didi

python - 当在 bash 中调用的 python 脚本遇到错误时,如何停止 bash 脚本?

转载 作者:行者123 更新时间:2023-11-28 21:51:06 41 4
gpt4 key购买 nike

如标题所述,我有一个非常简单的问题。我在网上搜索了一下,发现答案对我来说并不容易理解。一个最小的例子是,我有一个 python 脚本 python_script.py:

#!/us/bin/python                                                           

import sys

number = int(sys.argv[1])

if number <= 10:
pass
else:
raise ValueError('Number is higher than 10!')
sys.exit(1)

然后我有一个 bash 脚本 bash_script.sh,它调用上面的 python 脚本。

#!/bin/bash                                                                 

for num in {1..100}
do
python python_script.py ${num}
done

我试图做的是:在 python 脚本中引发异常后,我希望 bash 脚本立即停止(即,在本例中当 num>10 时)。但是现在有了这两个脚本,从 1 到 100 的所有 num 循环都在 bash 脚本中执行,但只有在 10 之后才会在屏幕上打印异常。我想这应该很容易,所以在此先感谢您的帮助。

最佳答案

可以测试python脚本的退出状态,如果不为0则退出bash脚本。最简单的方法是

#!/bin/bash                                                                 

for num in {1..100}
do
python python_script.py ${num} || exit
done

但您也可以使用 if 语句:

for num in {1..100}
do
if ! python python_script.py ${num}; then
echo "An error occurred"
exit
fi
done

关于python - 当在 bash 中调用的 python 脚本遇到错误时,如何停止 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30878079/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com