さてここまででシェルスクリプトの書き方はわかりました。それを使うにはど うしたらいいのでしょうか。例えばmyprocというファイルをviで書いたとしま す。それを実行するには単にmyprocでよいでしょうか。できればそうしたいも のです。やってみましょう。
% vi myproc
% myproc
myproc: Permission denied.
%
どうしたことでしょう。自分のファイルなのに許可がないとは。じつはこれは 実行許可が設定されていないということです。UNIXのファイルにはどういう人 にそのファイルをアクセスさせるかを設定するビットが用意されています。ls -lで見ることができます。
% ls -l myproc
-rw-r--r-- 1 iwashi 293 Sep 21 15:16 myproc
%
この最初の記号-rw-r--r--がそれを表しています。最初の-は普通のファイル を表しています。そこがdならばディレクトリ、lならばシンボリックリンクを 表します。そこから後の9つは、所有者、グループ、その他の人の読みだし、 書き込み、実行の許可を表しています。最初の3つ、rw-は所有者はrつまり読 みだしとw書き込みは設定されていますが、最後の実行xは設定されていません。 同様にグループ、その他ともr--です。読みだしのみが許されています。実行 可能なスクリプトですからxも付けたいと思います。chmodコマンドを使います。
% chmod 755 myproc
% ls -l myproc
-rwxr-xr-x 1 iwashi 293 Sep 21 15:16 myproc
%
chmodコマンドの最初の引数は上述の許可ビットを8進数で表現したものです。 次のlsで見たとおりの数値になっています。その次の引数が許可すべきファイ ルです。これでmyprocは実行可能となりました。
% myproc
私のスクリプトを実行中です。
%
実は実行許可がなくても実行させる方法はあります。sourceを使います。
% chmod 644 myproc # 実行許可を外しました。
% myproc
myproc: Permission denied.
% source myproc
私のスクリプトを実行中です。
%
便利なスクリプトができるといろんなところからそれを使いたくなります。ス クリプトもコマンドと同じ検索方法で探されます。ですからpathに書かれてい るディレクトリのどこかにあれば呼び出せます。例えば /binというディレク トリを作ってpathに加えておきたいものです。ログインするたびにちゃんと pathにこの名前が設定されるようにするにはどうしたらよいでしょうか。次に 説明する.loginなどを使います。