Linux Shell Script:ifステートメントでメソッドを呼び出して同時に戻り値を計算する方法

Linux Shell Script:ifステートメントでメソッドを呼び出して同時に戻り値を計算する方法

Linux シェルスクリプトに関しては、以下があります。

verifyIfFileExists(){
   ...
   returns 0 # if the file exists
   ...
   returns 1 # if the does not exist 
}

...

something(){

   verifyIfFileExists
   resultVerification=$?

   if [[ $resultVerification -eq 0 ]]; then
      ...   
   else
      ...
   fi
   ...
}

上記のコードは期待どおりに機能します。可能かどうか、メソッドを呼び出して文で評価する方法を知りたいです。宣言をif避けてくださいresultVerification=$?。次のようになります。

something(){

   verifyIfFileExists

   if [[ $(verifyIfFileExists) -eq 0 ]]; then
      ...   
   else
      ...
   fi

ベストアンサー1

もし注文する

成功すればcommandあなたの場合、ステータス0で終了します。

if verifyIfFileExists; then
    ...
else
    ...
fi

[それ[[自体は、引数として与えられた式の評価に従って0または1を返すコマンドです。だから

if [[ ...

通常のインスタンスです。

もし注文する
上記のように。

後で使用したい場合は、終了状態を別の変数に保存すると便利です。

... run a command
result=$?
printf "Command foo exited with result %s.\n" "$result"
if [[ "$result" -eq 0 ]]; then
    ...
fi

必要ない場合

command
if [[ "$?" -eq 0 ]]; then

次のように書き換えることができます。

if command; then

読みやすくなると思います。関数にその名前がある場合は特にそうです。例えば

if fileExists; then

また、見ることができますシェルチェック SC2181より多くのトラップがリストされています。

おすすめ記事