Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当在bash中调用的python脚本遇到错误时,如何停止bash脚本?_Python_Bash_Shell_Exception_Error Handling - Fatal编程技术网

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

当在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

我有一个标题中描述的非常简单的问题。我在网上搜索了一下,发现答案对我来说并不容易找到。最简单的例子是,我有一个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)                                                                                     

我试图做的是:在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