プログラミング言語探訪CShell
作者の通っていた大学にはワークステーション室というのが二部屋あり、確か50台ずつでかいディスプレイがずらっと並んでいました。そこでは現在ではもうほぼ使われていない商用UNIXが動いており――以前紹介した卒論用C++プログラムはここで動かした――そのコマンドシェルとして使用していたのがCShellでした。実際には2年後期頃からtcshに切り替えてましたが。
で、CShellはコマンドシェルとして使えるだけでなく、プログラム言語としても動くというもので、当時はなかなか便利に使っていました。
PCでいうならバッチとかが同じような位置づけですね。
当時使用していたシェルスクリプトファイルはさすがにもう手元にありませんが、メールの受信振り分け、プログラムのコンパイル自動実行なんてのもやってました。
コンパイル自動実行は自分でも結構秀逸にできたというもので、こんな感じでした。
・プログラムのコンパイルを行い、実行可能ファイルを生成する。
単純にコンパイルコマンドを実行した場合、出力されるファイルは a.out という名前になりますが、これをちゃんと整える。
・エラーメッセージをメール送信してくれる
コンパイルエラーって発生箇所によっては大量に出ることがあります。例えば宣言している変数名と実際に使っている変数名がズレていると「この変数は宣言されていない」というメッセージが使われている全行で出てしまいます。コンパイルエラー対応の基本は「最初のメッセージ」なのですが、普通にコンパイルコマンドを実行するとあっという間にメッセージが流れて消えてしまうので、メールで届くのは結構便利でした。
・コンパイルはバックグラウンドで実行される
コンパイルに時間がかかる場合でも勝手にやってくれるだけでなく、コンパイルを指示してログアウトしても問題なし。
いくつかの講義の試験が、時間内にプログラムを作って提出、というのがあって、コンパイルエラー潰し、コンパイルしている間に次の問題、というようなやり方で結構楽してました。
そんなCShellですが、現在ではほぼ使われていないんだとか。
記述のクセが強く、バグを生みやすい。
shとかbash、zshとかの方が便利な機能が多い。
等々。
まあ、UNIX系OSを個人利用する場合、Linuxのディストリビューションが大半でしょうし、それらもコマンドを使う機会はだいぶ減っているので、作者も今後使う予定はゼロ。そんな言語というか環境というか……それがCSHellです。
まあ、プログラミング言語と呼ぶかどうかは微妙かもなあ……




