• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルスクリプト(sh)の関数の戻り値とtestコマンドによる判定の仕)

シェルスクリプト関数の戻り値とtestコマンドによる判定方法

このQ&Aのポイント
  • シェルスクリプト関数の戻り値とtestコマンドを使用して0か1を判定する方法がわかりません。
  • 外部シェルスクリプトを読み込み、その戻り値をtestコマンドで判定して0か1の出力をしたいです。
  • 何度か試してみましたがうまくいきません。上記のコードに書き間違いがあるか、アドバイスがあれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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

noname#139165
質問者

お礼

大変参考になりました。 本当にありがとうございます。 あっさりと解決できました。 もちろん、方法1と方法2とも両方とも解決できました。 方法2のtest命令の不要の件ですが、そういう方法もあったのですね。 こんな便利な方法もあることは全然知りませんでした。

関連するQ&A