csh 入門 --- 実行の仕方 ---

まず手始めに、 hello world というメッセージを作るコマンド hello を作ってみましょう。コマンドは ~/bin に作ります。

% mkdir ~/bin
% cd bin % mule hello &

1.1 メッセージを作るコマンド hello

mule を開いて hello という file を作ってください。 内容は下の部分を入力してください。マウスで copy するだけで 入力できるはずです。
#!/bin/csh     
#           1.1 メッセージを作るコマンド hello 
echo "hello world"

最初の行はこれが csh であることを示します。2 行目以降の # は、 コメント行です。何も実行されませんが、これが何のコマンドであるか 誰が作ったコマンドであるか等を書いておくことが強く望まれます。

echo は 次の文字を表示します。"書きたい文字" を書きます。

hello を 保存してください。それから

% chmod +x hello
% ls -l hello
-rwxr-xr-x   1 rsaito   bin            89 Jul  3 21:42 hello*
chmod +x は hello を実行可能にします。これをしないと実行してくれません。 ls -l でみると x (実行可能) が 3 つついていることが分かります。

実行してみましょう。

% hello
hello world

できましたね。echo の代わりに 皆さんの知っている unix の コマンドを いれてみてください。(ls, who, ...) 動きますよ。

1.2 日本語のメッセージを作るコマンド konnitiha

さっきの hello world を 日本語で こんにちはにしましょう。 mule を開いて konnitiha という file を作ってください。 内容は下の部分を入力してください。マウスで copy するだけで 入力できるはずです。
#!/bin/csh     
#           1.2 日本語のメッセージを作るコマンド konnitiha 
echo "こんにちは"

保存します。あとは 1.1 と同じ手続きをしますが、日本語の場合 文字コードを kterm で使っている文字コードと同じにする必要が あります。ここでは kterm で EUC コードを使っている場合を説明します。 以下を実行してください。マウスですぐできますね。
% nkf -e konnitiha >! toto
% mv toto konnitiha
% chmod +x konnitiha
% konnitiha
こんにちは
%
どうですか? うまくいきましたか? nkf は 文字コードを変換する コマンドです。 nkf が無い場合には、管理者の人に聞いてみてく ださい。こんにちはが、文字化けする場合には、nkf -j (JIS コード) nkf -s (Shift JIS コード) 等で試してみてください。

1.3 EUC コードに変換するコマンド 2e

1.2 の文字コード変換は操作が不便です。次は file 名をいれて、 EUC コードに変換し、chmod +x をして、ls -l で結果をみて、更に実行する コマンド 2e を作ってみましょう。
#!/bin/csh     
#           1.3 EUC コードに変換するコマンド 2e 
nkf -e $1 >! toto
mv toto $1
chmod +x $1
ls -l
$1 

ここで $1 は 2e の コマンドの最初の引数になります。

% 2e file

とすると、$1 に file が入ります。2e を実行可能にするのを忘れないでください。

% chmod +x 2e 
% 2e konnitiha
-rwxr-xr-x   1 rsaito   bin            94 Jul  3 22:12 konnitiha*
こんにちは
うまくいっていますね。次からは 2e を使わないでも konnitiha コマンドは良く使えます。こんにちは自身は既に euc コードになっ ていますが、他の日本語コマンドを作って試してみてください。

注: この 2e というコマンドは、toto という file が実行する時 存在すると上書きをして消してしまう危険があります。それを解消 するためには、toto よりもっとおきにくい名前に設定すればいい です。また自分で、こういう名前なら消しても良いという file 名 を作っておくと便利です。(フランス人は toto, アメリカ人は foo, 日本人は aho を使う人が多いみたいですね。) もし多くの人が使う コマンドを作る場合には、もっと注意が必要です。それは後の章で説明しましょう。


rsaito@ee.uec.ac.jp