[英]How to stop a bash script when the python script that is called within bash encounters an error?
正如標題中所述,我有一個非常簡單的問題。 我在網上搜索了一下,發現答案不容易理解。 一個最小的例子是,我有一個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
腳本的退出狀態,如果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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.