Python 基于$的输出错误?bash中的值

Python 基于$的输出错误?bash中的值,python,bash,Python,Bash,我有一个python脚本,test.py,它包含以下内容: import sys def dosomething(): a=1 b=1 if a == b: sys.exit(1) if __name__ == "__main__": dosomething() 以及包含以下内容的bash脚本: python test.py echo $? if [ $? -eq 0 ]; then echo "Success&q

我有一个python脚本,test.py,它包含以下内容:

import sys

def dosomething():
   a=1
   b=1
   if a == b:
      sys.exit(1)

if __name__ == "__main__":
   dosomething()
以及包含以下内容的bash脚本:

python test.py
echo $?

if [ $? -eq 0 ];
then
    echo "Success"
else
    echo "Failed"
fi
美元的回显值是多少?是1,由python脚本sys.exit(1)中的条件设置。但是,为什么我的bash输出是:

Success

而不是“失败”?美元不是吗-由于第二个
$?
引用了
echo$?
命令的状态代码,因此等式0为false

如果要多次使用状态返回,请将其保存在shell变量中:

python test.py
status=$?

您可以将
if
语句更改为
if python test.py;然后
。。。。