检查bash脚本回显的命令的最后一个退出代码
此脚本的输出将是:检查bash脚本回显的命令的最后一个退出代码,bash,return-value,expect,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; 我猜第一个0是“echo”的返回码。我说得对吗?如果是,那么如何捕获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;
我猜第一个0是“echo”的返回码。我说得对吗?如果是,那么如何捕获
expect
的返回代码?在运行任何命令后,需要立即提取退出/返回代码
因此,请使用:
Exiting
0
1
由于您的代码在
expect
调用之后立即执行echo
,因此$?
将为您提供echo
的退出状态,而不是expect
命令。我想您已经理解了这一点,但是执行显式exit 1
当然会始终为您提供退出/返回值1
。此外,如果脚本的结尾没有exit/return语句,那么它的返回值将与上次执行的命令/函数的返回值相同。
VAR=$(expect -c 'puts "Exiting"; exit 1;')
RETURN_CODE=$?
echo "$VAR"
echo $RETURN_CODE