- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルスクリプト(sh)の関数の戻り値とtestコマンドによる判定の仕)
シェルスクリプト関数の戻り値とtestコマンドによる判定方法
このQ&Aのポイント
- シェルスクリプト関数の戻り値とtestコマンドを使用して0か1を判定する方法がわかりません。
- 外部シェルスクリプトを読み込み、その戻り値をtestコマンドで判定して0か1の出力をしたいです。
- 何度か試してみましたがうまくいきません。上記のコードに書き間違いがあるか、アドバイスがあれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
GetYesNo.shの中で GetYesNo()が定義されていて、return 0 か return 1で戻り値を返す、ということでよろしいでしょうか? 方法1) 特殊変数$?の利用 GetYesNo $1 if [ "$?" -eq 0 ] ; then 直前のステータスなので、間に他のコマンドを実行しているとそちらの値になる GetYesNo $1 echo "$?" # $?=GetYesNo $?の戻り値 if [ "$?" -eq 0 ] ; then #$?= echo "$?"の戻り値 方法2) GetYesNoを直接使用 test 命令( とその省略形の[ )は不要 # GetYesNo $1 #ここにはいらない if GetYesNo $1 ; then
お礼
大変参考になりました。 本当にありがとうございます。 あっさりと解決できました。 もちろん、方法1と方法2とも両方とも解決できました。 方法2のtest命令の不要の件ですが、そういう方法もあったのですね。 こんな便利な方法もあることは全然知りませんでした。