簡體   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