68user's page 掲示板

Prev< No. 3978〜3979> Next  [最新発言に戻る] [過去ログ一覧]
No. 3978 # もの知らず? 2004/10/01 (金) 11:05:41
AIXでのcsh実行でよく分からない点があり、初めて投稿させて頂きました。

AIX5.2で以下のcshを実行するとエラーは起きません。

        #!/bin/csh
        if ( '07' >= '01' ) then
        endif
        exit

しかし、if文内の'07'を'08'or'09'にすると
    「if:数値の形式が正しくありません.」
とエラーになります。
('10'や'11'などでは問題ありません。)

HP-UXではエラーにならないのですが、理由がお分かりになる方が
いらっしゃったら御教えください。

No. 3979 # 68user 2004/10/01 (金) 12:23:06
>>3978 もの知らず?
おそらく、>= は両辺を数値として比較するため、0 から始まる文字列は
8進数と解釈されてしまうのでしょう。

もし /bin/test が存在するなら
    test '07' -ge '01'
    if ( $status == 0 ) then
        処理
    endif
とか
    test '07' -ge '01' && 処理
などとする手があります。

Prev< No. 3978〜3979> Next  [最新発言に戻る] [過去ログ一覧]