我已经在shell中编写了一个程序。在这个shell脚本中,我正在调用一个python脚本。这工作正常。 我希望我的python脚本将输出返回到shell脚本。 可能吗? (我没有在谷歌上得到任何这样的方式)。 如果有可能,你能告诉我该怎么做吗?
test.sh
#!/bin/bash
python call_py.py
和python脚本(call_py.py
)
#!/usr/bin/python
if some_check:
"return working"
else:
"return not working"
如何从python返回并捕获shell?
答案 0 :(得分:5)
要在变量中获取命令的输出,请使用进程替换:
var=$( cmd )
例如
var=$( ls $HOME )
或
var=$( python myscript.py)
$()几乎完全等同于使用反引号,但不推荐使用反引号语法,而首选$()。
如果您的意图是返回字符串'working'或'not working'并在shell脚本中使用该值来确定python脚本是否成功,请更改您的计划。使用返回值要好得多。例如,在python中你'返回0'或'返回1'(成功为0,失败为1),然后shell脚本就是:
if python call_py.py; then
echo success
else
echo failure
fi
答案 1 :(得分:3)
使用$(...)
将命令的标准输出捕获为字符串。
output=$(./script.py)
echo "output was '$output'"
if [[ $output == foobar ]]; then
do-something
else
do-something-else
fi