我试图理解如何从bash脚本访问python脚本的返回值。在
举例说明:
食品
def main():
print ("exec main..")
return "execution ok"
if __name__ == '__main__':
main()
开始.sh
^{pr2}$如果我运行bash脚本,将打印消息“exec main..”。在
如何将返回值(execution ok)存储在脚本输出中? 如果我将execution ok指向stdout,则脚本输出将捕获所有stdout(因此是2 print语句)。在
有没有办法实现这一点?在
谢谢! 阿莱西奥
您可以通过
$?
获得前一个命令的输出状态。如果python脚本在没有任何stderr
的情况下成功运行,它应该返回0
作为退出代码,否则它将返回1
或0以外的任何数字。在使用
sys.exit()
模块从脚本中添加正确的退出代码。通常,命令在脚本成功完成时返回0。在并用一个简单的条件在shell脚本中捕获它。虽然退出代码默认为0,并且需要显式地传递而不是,但是使用
^{pr2}$sys.exit()
可以控制在错误情况下返回非零代码,以了解与脚本的某些不一致。在Bash在
$?
中只包含返回代码,因此不能使用它来打印python的return
中的文本。 我的解决方案是在python脚本中写入stderr,然后在bash中只打印stderr:巴什:
^{pr2}$输出:
相关问题 更多 >
编程相关推荐