在引发异常的 运行 python 脚本之后捕获 shell 输出
Capture shell output after running python script that raised Exception
我是 运行 groovy 中的一个 shell,它执行 python 脚本。通过将 python 脚本分配给一个变量,我能够得到它的输出。
但是,我也想捕获异常,但在异常情况下我无法获得 python 跟踪。
groovy 脚本:
script{
try{
var_name = bash("""python3 some_script.py""")
echo "$(var_name)"
}
catch(exc){
echo "$(var_name)"
}
}
如果 python 没有引发异常,则打印脚本的输出,但如果出现异常,则打印 null。
有什么解决办法吗?
Python 将异常写入标准错误,因此如果您想将它们与正常输出一起捕获,您应该通过将 2>&1
添加到 bash 输入来将 stderr 重定向到 stdout .
你的情况是 bash("""python3 some_script.py 2>&1""")
。
我假设 bash
函数将参数发送到 bash shell。
我是 运行 groovy 中的一个 shell,它执行 python 脚本。通过将 python 脚本分配给一个变量,我能够得到它的输出。 但是,我也想捕获异常,但在异常情况下我无法获得 python 跟踪。 groovy 脚本:
script{
try{
var_name = bash("""python3 some_script.py""")
echo "$(var_name)"
}
catch(exc){
echo "$(var_name)"
}
}
如果 python 没有引发异常,则打印脚本的输出,但如果出现异常,则打印 null。 有什么解决办法吗?
Python 将异常写入标准错误,因此如果您想将它们与正常输出一起捕获,您应该通过将 2>&1
添加到 bash 输入来将 stderr 重定向到 stdout .
你的情况是 bash("""python3 some_script.py 2>&1""")
。
我假设 bash
函数将参数发送到 bash shell。