@ の右辺、 if や while の条件式部分 (かっこ内)、 exit の引数 (かっこ内)で使用できます。ただし、代入文は @ でしか使用できません。
式による変数値の設定文 @ は、基本的には以下のように使用します。
@ name = exprname は変数名、expr は式を表します。
使用できる数式、条件式は、表 1 の通りです。
==, != は、 両辺を文字列として等しいか等しくないかの判別を行います。 また、=~, !~ は、その左辺の文字列が、 右辺のパターン (ファイル名置換パターン) と一致するか (=~) 一致しないか (!~) を判別します。
csh スクリプトのパターンには、通常の文字列に加えて、
表 2 の特殊文字が使用できます。
200[0-7].[A-Z][a-z][a-z].[0-9][0-9]というパターンは、``2007.Dec.27'' のような文字列に一致 (マッチ) します。
なお、このパターンを含む単語が csh スクリプトの コマンドラインで使用された場合、 その単語はそれにマッチするすべてのファイル名を スペースで区切った文字列に展開されます。 例えば
cp ab*.tex dirというコマンドラインでは、 パターン文字列を含む単語が実際に存在するファイル名による
cp ab.tex ab12.tex ab23.tex abc.tex dirのようなコマンドラインに展開されてから実行されます。
@ 文では、代入式 = の代わりに C 言語と同様に += や *= のような代入文も使用できます。 また、後置のみですが、++, - も使用できます。例:
@ j ++
さらに、式には「-l name」という形式の
表 3 のファイル検査式も使用できます。
竹野茂治@新潟工科大学