プロが教える店舗&オフィスのセキュリティ対策術

質問です。

以下のように表記されている場合
@ XXXnum=0
XXXchk:
@ XXXnum++
if ($XXXnum > 3 ) then
goto XXXerror

とある場合、XXXnumはふつうの変数(環境変数等ではなく)
と考えてOKなのでしょうか?
(@マークについてよく解らないもので)
またCの様に(関数の)頭で宣言しなくて宜しいのでしょうか?
また、XXXchk:とは関数のくくりで終わる場合単に、
end
の表記だけでよいのでしょうか?
(XXXchk:が関数の頭だとするとこれの中にも一つ同じ様な表記があって
 endが一個しかないのも疑問なんですが)

cシェルと言うよりシェル全般に関して初心者なんで、宜しくお願いいたします。

A 回答 (1件)

@ は整数型のシェル変数を設定することを示します。


単なる代入ならば
set XXXnum=0
としても良いのですが、@ の場合は
@ XXXnum++
@ XXXnum=2+3
のように式を記述することができます。

シェル変数は環境変数と異なり、そのシェルの内部だけで使われるもので、
他のプログラムに引き渡したりすることは、特別な工夫をしない限り
できません。宣言は必要ありません。

XXXchk: は関数を示すものではなく、ラベルと呼ばれるもので、単なる
目印です。
goto XXXchk:
のような記述があった場合はここへ飛んできますが、処理が終わった後
元の場所へ戻るというようなことはないので、endは不要です。
    • good
    • 0
この回答へのお礼

有り難うございます。
よく解りました。
シェルって結構簡単に変数を宣言できるものなんですね。

あと、XXXchk: は関数を示しているんじゃなかったんですね。
何かこういうくくりを見て思わず「関数なんかな?」と思ってしまったので。

まだまだ解らないことだらけなので、今後ともご教授の程宜しくお願いいたします。

お礼日時:2001/10/17 10:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!