Shell脚本中执行Python脚本并接收其返回值的例子
在Shell脚本中,我们可以通过$(命令)
或者反引号命令
的方式来执行指定命令,并将其返回值赋值给变量。因此,如果我们要在Shell脚本中执行Python脚本,并接收Python脚本的返回值,可以使用这种方式来实现。
示例说明
假设我们有一个Python脚本test.py
,内容如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
def main():
print('Hello, world!')
sys.exit(0)
if __name__ == '__main__':
main()
该脚本输出Hello, world!
并且返回0。我们现在要在Shell脚本中执行该脚本,并接收其返回值,可以编写如下Shell脚本:
#!/bin/bash
result=$(python test.py)
echo "Python脚本返回值为:$result"
运行该Shell脚本,可以看到如下输出:
Hello, world!
Python脚本返回值为:0
这里我们使用了$(命令)
的方式来执行Python脚本,并将其输出赋值给变量result
。由于该Python脚本的返回值是0,因此我们在Shell脚本中可以接收到0这个值。
但是如果Python脚本返回的是非0的值,例如:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
def main():
print('Hello, world!')
sys.exit(1)
if __name__ == '__main__':
main()
那么在Shell脚本中,我们需要通过特殊的方式来接收其返回值。具体来说,我们需要使用$?
这个变量来获取上一个命令的返回值。
例如,我们可以编写如下Shell脚本:
#!/bin/bash
python test.py
if [ $? -eq 0 ]; then
echo "Python脚本执行成功"
else
echo "Python脚本执行失败"
fi
运行该Shell脚本,可以看到如下输出:
Hello, world!
Python脚本执行成功
这里我们首先执行了Python脚本,然后通过$?
变量来获取其返回值。如果返回值是0,说明Python脚本执行成功,否则说明Python脚本执行失败。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shell脚本中执行python脚本并接收其返回值的例子 - Python技术站