2017-07-26 63 views
0

我想从另一个shell脚本(B)运行一个shell脚本(A)。为了测试目的,shell脚本(A)将总是抛出异常/错误(仅用于测试)。我试图在运行该脚本后立即获取退出状态代码。执行shell脚本的退出状态码

代码:

壳体1:

errormsg=$(sample.sh 2>&1) 
if [ $? -ne 0 ] 
then 
echo $? 
echo "Successful." 
else 
echo $? 
echo "Error." 

输出:

0 
Successful 

壳体2:

errormsg=$(sample.sh 2>&1) 
echo $? 
if [ $? -ne 0 ] 
then 
echo $? 
echo "Successful." 
else 
echo $? 
echo "Error." 

输出:

1 
1 
Error 

为什么产量有差异?案例1中的输出不应该是'错误'吗?

回答

0

$?总是给出最后执行的命令的结果。

在案例1中,这是你的外部脚本,但如果二是echo $?

这就是为什么你会得到不同的结果

+0

找到了解决办法。不管怎么说,还是要谢谢你。 –