仕事で既存のコードを読んでいて分からなかったので質問させて下さい。
以下のようなコードが書かれています。
・test.csh
csh
1#!/bin/csh -f 2 3echo "開始しました。" 4source param.par 5 6if ( $?STR_FLG ) then 7 echo "if文の中に入りました" 8end if 9 10exit 0
•param.par
csh
1setenv STR_FLG YES
これを実行すると、以下のようになります。
./test.csh
開始しました。
if文の中に入りました
ここで質問なのですが、なぜif文の中に入ることができているのでしょうか?
$?はネットで調べると、特殊変数で「シェルが最後に実行したコマンドの終了状態を保持している。ほとんどのコマンドは成功時には「0」を返す」となっていますが、これでなぜif文の中に入るのかが分かりません。
ご回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー