繁体   English   中英

获取Shell中管道命令的退出状态

[英]Get exit status of piped commands in Shell

我得到了一个提示输入密码的脚本。 为此,我使用echo <password> | script.sh 我的其他脚本中的echo <password> | script.sh ,以便用户在开头输入密码,并且不再提示输入密码。

我想知道echo <password> | script.sh的退出状态。 echo <password> | script.sh命令。 我尝试过status=echo <password> | script.sh; echo $status status=echo <password> | script.sh; echo $status status=echo <password> | script.sh; echo $status但这只是换行符。 echo echo<password> | script.sh echo echo<password> | script.sh无法正常工作。

默认情况下,管道命令的退出状态是管道的最后一条命令的退出状态。

# 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM