調べてみましたがなかなかできないので、質問させていただきます。
Bashスクリプトで下のような代入をするとします。
bash
1myFunction() { 2 result=$(myCommand) 3}
このとき、myCommand
の結果をresult
に代入していますが、このmyCommand
の終了ステータスを同時に確認します。
ここの記事では、下のように書けば大丈夫と書いてあり、実際うまく動きました。しかし、result
がローカル変数になっているとうまく動きません。これはなぜそうなってしまうのでしょうか。
bash
1myFunction() { 2 status=0 3 result=$(myCommand) || status=$? 4 echo $status # これは128などと表示される 5}
bash
1myFunction() { 2 local status=0 3 local result=$(myCommand) || status=$? 4 echo $status # これだと常に0になる 5}
スクリプトの例示の中で、function と command はそれぞれ予約語なので、別の名前に変えておいたほうが良いです。

回答1件
あなたの回答
tips
プレビュー