我想从bash脚本执行python脚本,并将python脚本的输出存储在一个变量中。你知道吗
在python脚本中,我打印了一些值为0或1的错误消息
def main ():
if condition A :
sys.stderr.write("FORBIDDEN commit")
return 1
else: return 0
sys.exit(main())
这是我的bash脚本:
我使用$?
从python脚本获取退出代码+错误值
python /var/www/svn/TEST/hooks/pre-commit-standard-codeline.py $SVNRepository $SVNTransaction
PYTHONRESULT=$?
echo $PYTHONRESULT >&2 #echo display -->FORBIDDEN commit1
if [ $PYTHONRESULT -ne 0 ];
then
echo -e "\n" >&2
echo "=====================================================================" >&2
echo "Your commit is blocked for the following reasons:" >&2
echo -e "\n" >&2
echo -e ${PYTHONRESULT:0} >&2
echo -e "\n" >&2
echo "=====================================================================" >&2
echo -e "\n"
exit 1
fi
我的问题是在bash脚本中,我想从错误消息中拆分python的exit值,这样就可以在echo
命令中触发结果
我试过${PYTHONRESULT:0}
,但它总是给出python脚本的退出值
你好像不知道什么会去哪里。Python已经将错误消息写入standard error,
return
代码结束于shell中的$?
。你知道吗通常,您不需要经常显式地检查
$?
,因为if
和while
以及朋友在幕后为您做这些。你知道吗也许你要找的只是
如果要捕获标准错误,请尝试
这有点混乱,因为它混合了标准输出和标准误差。你知道吗
如果需要的话,有很多方法可以将它们分开,但是你的问题和代码看起来好像你并不期望在标准输出上得到任何东西。你知道吗
相关问题 更多 >
编程相关推荐