当在bash中调用的python脚本遇到错误时,如何停止bash脚本?
我有一个标题中描述的非常简单的问题。我在网上搜索了一下,发现答案对我来说并不容易找到。最简单的例子是,我有一个python脚本python_script.py:当在bash中调用的python脚本遇到错误时,如何停止bash脚本?,python,bash,shell,exception,error-handling,Python,Bash,Shell,Exception,Error Handling,我有一个标题中描述的非常简单的问题。我在网上搜索了一下,发现答案对我来说并不容易找到。最简单的例子是,我有一个python脚本python_script.py: #!/us/bin/python import sys number = int(s
#!/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)
我试图做的是:在python脚本中引发异常之后,我希望bash脚本立即停止(即,在本例中,当num>10时)。但现在有了这两个脚本,从1到100的所有num循环都在bash脚本中执行,但只有在10之后,异常才会显示在屏幕上。我想这应该很容易,所以提前感谢您的帮助。您可以测试
python
脚本的退出状态,如果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
for num in {1..100}
do
if ! python python_script.py ${num}; then
echo "An error occurred"
exit
fi
done