「シェル」は、コマンドを解釈し、カーネルに処理を実行させる橋渡し役のソフトウェアです。

シェルにコマンドを与えるには、ユーザーがその都度キーボードから手で入力する方法もありますが、コマンドをあらかじめファイルに記述しておく方法もあります。
コマンドをあらかじめ記述しておくファイル、それがシェルスクリプトです。
⇒ こちらの記事をご覧ください。
シェルスクリプトの実行方法は、いくつかあります。
第1が、「bash ファイル名」の形です。
スクリプトを処理するコマンド(ここではbash)と、スクリプトが記述されたファイルを指定します。
第2が、スクリプト名(ファイル名)の指定だけでの実行です。
この方法でいくには、
(1)スクリプト1行目にシバン(shebang)を記述する
(2)ファイルにchmodコマンドで実行権限を付与しておく
(3)パス付きでファイル名を指定する
の3つが必要です。
第3が、sourceコマンドを使う方法です。
上記のうち、第2の方法(スクリプト名の指定)での実行が一般的とされています。
今回の記事で書きたかったのは、スクリプト実行に関する技術的なことではなくて、「日本語の解釈」についてです。
上記第2の実行法については、次のような文章で解説されていました。
「シェルスクリプトの1行目にシバンを書いておき、ファイルに実行権限を付けておけば、ファイル名の指定だけで直接実行できます。」
この文章をどう読むかです。
私は、上記文章を
「1行目にシバンを書いておくことによってファイルに実行権限を付けておけば」
という意味に解釈しました。
シバンを書くことによって、ファイルに実行権限が付与される、と読んだわけです。
ところが、そうではありません。
上記文章は、
「1行目にシバンを書いておき、かつ、ファイルに実行権限を付けておけば」
という意味で書かれているのです。
スクリプト1行目にシバンを記述するばかりでなく、ファイルにchmodコマンドで実行権限を付ける、この両方が必要ですよ、と。
2通りの解釈ができてしまう日本語の文章。
日本語って、むつかしいものです。奥ゆかしい、微妙な表現が得意な言語ではありますが、それによって混乱も起きます。
「シェルスクリプトの1行目にシバンを書いておき、ファイルに実行権限を付けておけば、ファイル名の指定だけで直接実行できます。」
という文章があれば、
「シバンを書けば、それによって、ファイルに実行権限が付きますよ。」
っていう意味にも、読めてしまうんですけど・・・・・・、十分。
それでは、また次の記事で。
■■■■ goosyun ■■■■