我有一个build.sh
脚本,我的自动构建服务器作为构建的一部分执行。构建逻辑的很大一部分是计算和构建版本号。所有这些逻辑都在python脚本中,例如calculate-version.py
。
通常我在这种情况下要做的是设置python脚本以仅打印版本号,我将从bash脚本中读取stdout,并将其分配给环境变量。然而,python脚本变得非常复杂,我想开始向它添加日志。
我需要能够从Python脚本(通过print()
)输出(stdout)日志,同时完成后,传播一个"返回值"从python脚本返回到父shell脚本。
这样做的最佳方式是什么?我想通过环境变量来做到这一点,但我的理解是父进程无法获得的那些。
答案 0 :(得分:0)
简短回答:你不能。 * nix样式可执行文件的返回值是0-255之间的无符号整数。这通常表明它是否失败,但您可以选择它以供您自己使用。
在这种情况下,我不认为一个无符号字节就足够了。因此,您需要以其他方式输出它。你有几个选择
stdout
输出输出数据,并将您的日志/调试信息发送到其他地方。这可能是一个文件,或者(它的类型)stderr
答案 1 :(得分:0)
创建一个可执行的python脚本,用于打印变量print 99
。
#!/usr/bin/python
print 99
chmod a+x test.py
将其设置为可执行文件。
从bash执行此操作a=$(./test.py)
如果您打印a
(echo $a
),则应获得99
。
要仅获取version number
,您应该只打印version number
。