Tom*_*zyk 2 bash expect return-value
看看以下示例:
#!/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;
Run Code Online (Sandbox Code Playgroud)
该脚本的输出将是:
Exiting
0
1
Run Code Online (Sandbox Code Playgroud)
我的猜测是,第一个0是"echo"的返回码.我对吗?如果是这样,那么如何捕获expect命令的返回码?
运行任何命令后,需要立即提取退出/返回代码.
所以使用:
VAR=$(expect -c 'puts "Exiting"; exit 1;')
RETURN_CODE=$?
echo "$VAR"
echo $RETURN_CODE
Run Code Online (Sandbox Code Playgroud)
由于您的代码echo在expect调用后正在执行,因此$?为您提供退出状态echo而不是expect命令.