DigitalRossは、csh が複数行の引用符付き文字列を POSIX シェルとは異なる方法で処理すること、およびshorを使用bashする方が簡単である可能性が高いことは正しいです。 一般に、スクリプティングには適していないと考えられています (ただし、インタラクティブな使用のために、特にそのバリアントでcshそれを好む人もいます)。tcsh
スクリプト作成に使用する際の問題については、「有害と見なされる Csh プログラミング」を参照してください。csh
しかし、csh を使用してやりたいことを行うことは可能です。複数行の引用符で囲まれた文字列内の各行の末尾にバックスラッシュを追加するだけです。
#!/bin/csh -f
echo "jones 2143 78 84 77" >! student-marks
echo "Gondrol 2243 88 94 87" >> student-marks
awk '{\
if ($3 >=35 && $4 >= 35 && $5 >= 35)\
print $0,"=>","Pass";\
else\
print $0,"=>","Fail";\
}' student-marks
出力:
jones 2143 78 84 77 => Pass
Gondrol 2243 88 94 87 => Pass
もう 1 つ小さな変更を加えました。行に-fオプションを追加することです。#!これにより、リソース ファイルやスタートアップ ファイルが読み込まれなくなり、スクリプトは (a) 起動が少し速くなり、(b) 独自のファイルやファイルcshへの偶発的な依存関係が回避されます。(これはスクリプトには当てはまりません。これらのシェルでは、オプションの意味はまったく異なります。).cshrc.loginshbash-f