查看以下示例:
#!/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命令的返回码?
答案 0 :(得分:5)
运行任何命令后,需要立即提取退出/返回代码。
所以使用:
VAR=$(expect -c 'puts "Exiting"; exit 1;')
RETURN_CODE=$?
echo "$VAR"
echo $RETURN_CODE
由于您的代码在echo
调用后正在执行expect
因此$?
正在为您提供退出状态echo
而不是expect
命令。