我有一个提示输入密码的脚本。为此,我在我的其他脚本中使用echo <password> | script.sh
,以便用户在开头输入密码,不再提示输入密码。
我想知道echo <password> | script.sh
命令的退出状态。我试过了status=echo <password> | script.sh; echo $status
,但这只是换行符。此外echo echo<password> | script.sh
无效。
答案 0 :(得分:2)
默认情况下,管道命令的退出状态是管道最后一个命令的退出状态。
# returns 0 = SUCCESS
false | true ; echo $?
# returns 1 = FAILED
true | false ; echo $?
所以要检查案例中的退出状态:
echo 'password' | script.sh
status=$?
# example
if [[ $status = 0 ]]; then
echo "SUCCESS"
else
echo "FAILED $status"
fi