-- bashスクリプトその1 --
bashはそれ自体がプログラム可能です。
UNIXやLinuxでは、外部コマンドにが実行される挙動もスクリプトが実行される挙動も統一されています。
UNIXもLinuxもベースはC言語で書かれておりC言語で作られたコマンドも文字列の引数を受け取りコマンド終了時にはExitコードと呼ばれるコードを返します。
またC言語で作成したコマンドファイルのステータスを調べてみると実行権が付与されておりこれがないと実行できません。
スクリプトファイルも同様に、引数を受け取りExitコードを返すようになっておりファイルには実行権が付いています。
では、C言語で書かれたコマンドとbashスクリプトで書かれたコマンドを比較してみます。
C言語ではmainという名前の関数から始まることになっており、その定義は以下のようになっています。
int main(int argc, char *argv[]);
といった定義になっています。
int main...
の部分は、mainが整数型の値を返すことになっています。これはmainが終了コードを返す関数であることを意味しており
int argcはその後ろに続くコマンド引数の数+1個あることを示しています。+1個の理由は自分自身のコマンド名を含んでいるためで、char *argc[]はそれぞれの引数を示しています。
bashのスクリプトでは引数は$*という形で*の部分は数字の0~9に置き換えてアクセスることも可能です。
Exitコードは、組込コマンドexitの後ろに終了コードを付ける事で可能です。
このように、スクリプトファイルもC言語で作られたコマンドファイルも同様の動作をします。