csh内の記述（if文の記載方法）

[code]

    >>vi abc.log ↓
    10
    20
    30
    40
    50
    
[/code]

abc.log の内容は上記のようになっています。  
「40」「50」が含まれていた場合は「NG」、  
それ以外の時は「Ok」を結果として返す、  
シェルプログラムの作成方法（記述方法）を教えていただけないでしょうか？




Csh の場合、直前のコマンドの終了ステータスは `$status` で参照出来ます（tcsh では `$?` も使えるようです）。  
`if` 文では C言語風に数値の比較を行なえます。

[code]

    #!/bin/csh -f
    grep -qE '^(40|50)$' abc.log 
    
    if ($status == 0) then
        # 40 か 50 の行があった
        echo "NG"
    else
        # 40 か 50 の行はなかった
        echo "OK"
    endif
    
[/code]

また、`if` 文などの中で式が書ける場所では `{ }` で囲みコマンドの実行を行なえます。  
この部分の値はコマンドの終了ステータスが成功（0）ならば `1` に、そうでなければ `0` になります。  
よって、上の `grep` と `if` は、このように書く事も出来ます。

[code]

    if ({ grep -qE '^(40|50)$' abc.log }) then
    
[/code]

参考:  
[csh(1) - Linux man page](https://linux.die.net/man/1/csh)  
[Man page of TCSH - JM
Project](https://linuxjm.osdn.jp/html/tcsh/man1/tcsh.1.html)

