csh で "<>" は否定演算子!?

打ち合わせで見た csh のコード


if ( 1 <> $status ) then
それは SQL の not equal でんがな。よくよく聞いてみるとこのコードは動いたらしい。マジっすか!?

mac で動かしてみた。


if ( 1 <> $1 ) then
echo 'true'
else
echo 'false'
endif
動く。シンタックスエラーにならない…。けど、何を入れても true にならない…。いったい何を評価しているのだろうか。

tcshデバッグモードで動かしてみる。


% tcsh -x ./notequal.csh 0
tcsh -x ./notequal.csh 0
if ( 1 < > 0 ) then
echo false
false
endif
やはり <> なんていう演算子はないのだ。< と > が個別に動いているだけ。左の < の引数は ">" なのか、それとも "> 0"なんだろうか。tcsh のソースを見てみるか。
次号に続く…(?)