シェルの種類と特徴。
Ubuntuでシェルスクリプトの作成と実行。
関連ページ
参考URL
シェルは歴史が深くて調べれば調べるほどよく分からなくなってきます。
現時点で分かってる事をメモ。

シェルについて
シェルには沢山の種類があります。
一番初めに作られたのが
sh
で、そこから
ksh
、
bash
、
dash
、
zsh
、または
csh
、
tcsh
などの派生言語が作られてきました。
現状最も市民権を得ているのが
bash
です。これはMacでもWindowsでもLinuxでも使うことができます。
sh
、
ksh
、
bash
、
dash
、
zsh
、のシェルをsh系シェルと言い、これらのシェルスクリプトは.shが拡張子となります。
csh
、
tcsh
のシェルをcsh系シェルと言い、これらのシェルスクリプトは.cshが拡張子となります。
基本sh以降に作られた全てのシェルは、shの機能を全て含んでいます。
shに出来てそれ以外のシェルで出来ないことは無いです。
Ubuntuが標準で指定しているシェルは
dash
で、マイナーなシェルとなっています。
確認方法として、まず
which
でshコマンドの参照先を見てみる。
すると
/usr/bin/sh
というファイルが出てくるので、今度は
ls -l
コマンドで対象ファイルの詳細を表示させます。
結果は下のようにdashと出てきます。
lrwxrwxrwx 1 root root 4 Feb 2 2021 /usr/bin/sh -> dash
どうも色々調べてみると、dashはbashに比べて軽量ですが、人間が操作するにはとても不便らしいです。
UbuntuもLinuxの一派に過ぎないので、勿論シェルはdashだけでなくbashも使えます。
スピードのdashか、分かりやすさのbashかという使い分けになると思います。

Ubuntuでシェルスクリプトのテスト
今回は単純なことしかやらないのでbashではなくdashで作っていきます。
適当な方法で拡張子が.shのファイルを作成します。自分はviを使ってるのでコマンドは下の通り。
上のコマンドを打つと、新しくtest.shを作成すると共にviでそのファイルを開きます。
bashであれば、ファイルの一番初めに下のような
#!/usr/bin/bash
コードを打ち、bashファイルであることを示す必要があります。
ですが今回はdashで作るのでこのコードは省略。
今回はtest.shの中に下のようなecho処理を一行書きます。
ESCから:wqでファイルを保存して閉じます。
bashとdashが内臓されてるUbuntuでは、シェルスクリプトの呼び方が4種類あります。
以下その一覧です。
sh test.sh
dash test.sh
bash test.sh
source test.sh
shコマンドがdashに
シンボリックリンク
されてるので、Ubuntuでは
sh test.sh
と
dash test.sh
は全く同じ意味になります。
上のどちらかのコマンドを実行すると、結果は次の通りになります。
$がしっかりechoに表示され、¥nによる改行も行われています。
続いて
bash test.sh
を実行すると次の通り。
$がechoの表示から外され、改行コードはそのまま文字列として表れています。
このように表示に違いが出てくるのは、bashとdashでコードの解釈が異なるためです。
続いて
source test.sh
を実行すると次の通り。
結果からみると、
bash test.sh
と実行結果が一緒なので、
source test.sh
は
bash test.sh
と同じ意味と思われます。
0
0