检查由bash脚本回显的命令的最后退出代码

时间:2014-10-22 13:49:54

标签: bash return-value expect

查看以下示例:

#!/bin/bash

test(){
        return 1;
}

VAR=$(expect -c 'puts "Exiting"; exit 1;');
echo "$VAR";
RETURN_CODE=$?;
echo $RETURN_CODE;

test
RETURN_CODE=$?;
echo $RETURN_CODE;

此脚本的输出将为:

Exiting
0
1

我的猜测是,第一个0是" echo"的返回码。我对吗?如果是,那么如何捕获expect命令的返回码?

1 个答案:

答案 0 :(得分:5)

运行任何命令后,需要立即提取退出/返回代码。

所以使用:

VAR=$(expect -c 'puts "Exiting"; exit 1;')
RETURN_CODE=$?
echo "$VAR"
echo $RETURN_CODE

由于您的代码在echo调用后正在执行expect因此$?正在为您提供退出状态echo而不是expect命令。

相关问题