Linuxを利用する際、大体はコンソールを利用すると思う。
その時に使っているシェルの種類は、shやbash、ksh、zshと多岐に渡る。今回は、現在使っているシェルの種類を調べる方法をまとめてみた。
1.コンソール上で確認する方法
コンソール上で確認するのは、以下のコマンドどちらかで対応出来る。
echo $0
ps -o args= -p "$$"
基本的に、この "echo $0"と"ps -o args= -p "$$""で確認が可能だ。
SolarisやHP-UX、Macでも有効なので、基本的にはこれだけ覚えていればいいだろう。
ただ、シェルスクリプトではこの手法は使えない。
例えば、以下のようなスクリプトを実行したとしよう。
#!/bin/sh
echo "echo $0"
echo $0
echo ""
echo "ps -o args= -p """$$""""
ps -o args= -p "$$"
echo ""
その実行結果がこちら。
上記方法では、スクリプト自体を示してしまう。これではよろしくない。
2.スクリプト内でシェルの種類を確認する
スクリプト内でシェルの種類を判別する場合、以下のように記述すればいい。
readlink /proc/$$/exe
これで、スクリプト内でシェルの種類が判別出来る。