我的python脚本如下
#!/usr/bin/python3
#File Name: pythonScript.py
from sys import exit
if '__name__'=='__main__':exit(402)
这是shell脚本
python3 pythonScript.py
echo $?
它显示 146 。 402如何映射到146?诸如此类的其他一些对是(402、146),(100,0),(0、0),(56、0)等。
python脚本可以通过这种方式将值返回给shell吗,?
是捕获此值的正确变量吗?
如果这很重要,我的机器版本就是这个。
4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
答案 0 :(得分:1)
在bash中,退出代码仅可见最低的8位,402的低8位是146:
>>> 402 & 0b11111111
146
答案 1 :(得分:0)
不是外壳。系统调用接口仅容纳一个无符号的8位数字。因此可以传达的最大值是255。
如果您编写了一个{} {1}}试图访问int main()
的C程序,然后又用return(402);
从另一个C程序中调用了它,而没有任何shell,则会发生同样的事情。