シェルスクリプト
プログラムだよ
シェルで使えるコマンドがいろいろ書いてあるよ
バッチファイルのUNIX版だよ
簡単に書くよ
シェルスクリプト(英:shell script)とは
バッチファイル
(コマンドプロンプトで実行できるコマンドをまとめて書いたファイル)のUNIX版
と書くと逆に分かりにくいですかね。
シェル
(人間様からの入力をコンピュータさんに伝えるプログラム)が解釈できる命令を寄せ集めて作ったプログラムなファイルのこと
です。
もう少し、ざっくり書くと
コンピュータさんに対する命令が書いてあるファイル
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「シェル」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
シェルは「人間様からの入力をコンピュータさんに伝えるプログラム」です。
コンピュータを1つの会社に例えれば、シェルは受付のおねーさんです。
ついでなので書いておくと、コンピュータを使う人間が会社への訪問者、パソコンの中身が会社で働いている人に相当します。
あなたがパソコンの中身と直接やり取りすることは ありません。
あなたが やり取りする相手は、シェルです。
シェルが、あなたの代わりにパソコンの中身と やり取りしてくれます。
ここでは
人間様はシェルに対して命令し、シェルがコンピュータさんに対して指示を出す
というのを覚えておいてください。
少し話がそれますが、コマンドプロンプトとバッチファイルについても説明しておきます。
バッチファイルを理解できれば、シェルスクリプトも理解できます。
頑張って、ついてきてください。
コマンドプロンプトは「コンピュータに詳しい人がよく使う、Windowsにくっついている黒い画面」です。
この黒い画面に「コマンド」と呼ばれる命令文を打ち込むと、それに従ってパソコンさんが お仕事をしてくれます。
例えば
dir
というコマンドを打つと、そのフォルダの中に入っているファイルの一覧を表示してくれますよ。
他にも、いろいろな操作を、黒い画面からやれます。
この黒い画面に打ち込む命令文をあれこれ書いたファイルが「バッチファイル」です。
「コマンドプロンプトで使えるコマンドの寄せ集めファイル」と言っても良いかも知れません。
バッチファイルの拡張子(ファイルの種類を表す目印)は「.bat」にするのが慣例です。
拡張子「.bat」は、初期状態でコマンドプロンプトと関連付けられています。
バッチファイルをべちべちっ!とダブルクリックすることで、ファイルに書いてある命令文をまとめて実行できます。
例えば、以下の内容が書かれたバッチファイル「test.bat」が あったとしましょう。
@echo off
mkdir dir1
cd dir1
mkdir dir2
「mkdir」コマンドは「フォルダを作ってよ」な命令です。
「cd」コマンドは「現在地を移動してよ」な命令です。
「@echo off」は取りあえず気にしないでください。
つまり「test.bat」の中の命令は
@echo off
mkdir dir1
(「dir1」フォルダを作ってよ)
cd dir1
(「dir1」フォルダの中に移動してよ)
mkdir dir2
(「dir2」フォルダを作ってよ)
となります。
さて、「test.bat」を動かすと、どうなると思いますか?
そうです。
「dir1」フォルダを作って、その中に移動して「dir2」フォルダを作るので「dir2」フォルダが中に入った「dir1」フォルダができます。
一行一行は、コマンドプロンプトで実行できるコマンド(命令)です。
それをまとめて書いたファイルがバッチファイルです。
バッチファイルを実行すると、中に書かれているコマンド(命令)が上から順番に実行されていきます。
ここまでの説明で、バッチファイルについては何となく分かったでしょうか。
コマンドプロンプトで使えるコマンドの寄せ集めファイルです。
以上を踏まえて
シェルで解釈できる命令文をあれこれ書いたファイル
が「シェルスクリプト」です。
「シェルで使えるコマンドの寄せ集めファイル」と言っても良いかもしれません。
そうです。
バッチファイルの説明に対して
・Windows → UNIX系のOS(Linuxとか)
・コマンドプロンプト → シェル
と読み替えるとシェルスクリプトの説明になります。
つまり、バッチファイルとシェルスクリプトの役割は同じです。
どちらも、コンピュータに対する命令を書き込んだファイルを指す用語です。
例えば、そうですね。
ピヨ太君は、1日1回大事なファイルのバックアップを取っていました。
あと、いらないファイルを消していました。
まぁ、ピヨ太君がやったと言っても、実際にやるのはパソコンさんです。
ピヨ太君は
1.バックアップを取れ!
2.いらないファイルを消せ!
の命令を、キーボードを使ってポチポチ入力しているだけです。
ところがですね。
ピヨ太君はポチポチするのが面倒くさくなりました。
バックアップと不要なファイルの削除は、毎日やります。
雨の日も、風の日も、キーボードから
1.バックアップを取れ!
2.いらないファイルを消せ!
と入力しなくてはいけないのです。
面倒くさいですね。
そこでピヨ太君は、少しでも楽できないかと一生懸命考えました。
頭から湯気が出るくらい考えました。
そして、ついに名案が浮かんだのです。
ピヨ太君は
1.バックアップを取れ!
2.いらないファイルを消せ!
の命令を書いたファイルを用意しました。
そして、キーボードからポチポチ入力する代わりに、ファイルをコンピュータさんに渡して「これに書いてあることをやって」と指示することにしたのです。
これでピヨ太君は、かなり楽になりました。
キーボードでぺちぺち入力していたのが、ファイルを渡すだけになりましたからね。
この話における「パソコンさんに対する命令を書いたファイル」がバッチファイルであり、シェルスクリプトです。
Windowsの話で登場したときは「バッチファイル」と呼びます。
中にはコマンドプロンプトで使える命令が書いてありますからね。
UNIX系の話で登場した場合は「シェルスクリプト」と呼びます。
シェルが解釈できる命令が書いてあるからです。
役割は同じです。
バッチファイルも、シェルスクリプトも、コンピュータさんに対する命令が書いてあるファイルです。
一言でまとめるよ
まぁ「シェルスクリプト」って単語が出てきたら「シェル
(人間様からの入力をコンピュータさんに伝えるプログラム)が解釈できる命令文をあれやこれやと書いたファイルなんだな~」と お考えください。
おまけ
■訳してみるよ
「shell(シェル)」の意味は「殻」とか「貝殻」とかです。
本体を取り囲んでいるやつのイメージですかね。
「script(スクリプト)」の意味は「台本」とか「脚本」とかです。
何となく くっつけると
殻の台本
となります。
■検索してみる?






