2017-08-04 19 views
-1

パスワードを求めるプロンプトが表示されます。私は他のスクリプトでecho <password> | script.shを使用しているので、ユーザは最初にパスワードを入力し、それ以上パスワードを要求されません。シェルでパイプコマンドの終了ステータスを取得

echo <password> | script.shコマンドの終了ステータスを知りたいと思います。私はstatus=echo <password> | script.sh; echo $statusを試しましたが、これは単なる改行です。またecho echo<password> | script.shは機能しません。

+1

'男bash'、' $の検索を ' – gboffi

+0

あなたは' $を探しているかもしれない{PIPESTATUS [0]} '。 [別のパイプにパイプされたプロセスの終了ステータスを取得](https://unix.stackexchange.com/q/14270/56041)、[パイプ出力とBashでの終了ステータスの取得](https://stackoverflow.com/q (PIPESTATUS、tee、/ bin/shをどのように一緒に使うのですか?)(https://superuser.com/q/704460/173513)、[PIPESTATUSと出力をbashスクリプトで取得する方法] (https://superuser.com/q/425774/173513)など – jww

答えて

1

デフォルトでは、パイプラインコマンドの終了ステータスは、パイプの最後のコマンドの終了ステータスです。

# 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 
関連する問題