wis*_*wit 2 python error-handling bash shell exception
我有一个非常简单的问题,如标题中所述.我在网上搜索了一下,发现答案对我来说并不容易.最小的例子是,我有一个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)
Run Code Online (Sandbox Code Playgroud)
然后我有一个bash脚本bash_script.sh,调用python脚本.
#!/bin/bash
for num in {1..100}
do
python python_script.py ${num}
done
Run Code Online (Sandbox Code Playgroud)
我试图做的是:在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
Run Code Online (Sandbox Code Playgroud)
但你也可以使用一个if
声明:
for num in {1..100}
do
if ! python python_script.py ${num}; then
echo "An error occurred"
exit
fi
done
Run Code Online (Sandbox Code Playgroud)