我正在尝试从另一个shell脚本(B)运行shell脚本(A)。出于测试目的,shell脚本(A)将始终抛出异常/错误(仅用于测试)。我正在尝试在运行该脚本后立即获取退出状态代码。
代码:
案例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 :(得分:0)
$?
总是给出上次执行命令的结果。
在案例1中,这是您的外部脚本,但在案例2中,它是echo $?
这就是你得到不同结果的原因