说我有一些看起来像
的python脚本# myscript.py
#!bin/env python
def func(argv):
<some debugging print messages>
<some logic>
return some_string
def main():
return func(sys.argv)
如何在bash脚本或终端会话中捕获此脚本的返回字符串值(打印到控制台或在另一个命令中用作值)?
在SO上发现了其他几个类似的帖子(return value from python script to shell script,store return value of a Python script in a bash script),但这些似乎并不能说明需要将中间消息保留在代码中的事实(例如。喜欢
#echo "$(myscript.py 'input')"
最终包括所有python脚本的调试消息以及返回值)。有谁知道这里可以做些什么?
答案 0 :(得分:1)
如果返回值(问题中不清楚)是单行输出,您可以简单地说:
./script.py | tail -n 1
这将输出脚本生成的最后一行(根据需要调整数字)。
如果要保存到文件>
以创建新文件,或>>
附加到文件:
./script.py | tail -n 1 > file
答案 1 :(得分:0)
使用logging
模块而不是打印。默认情况下它将打印到stderr
,您可以将其重定向到其他位置...或禁用所有调试输出。请查看本页顶部的表格以获取使用建议:https://docs.python.org/2/howto/logging.html