bash、ksh…Linuxで現在使用しているシェルを知る方法

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

これで、スクリプト内でシェルの種類が判別出来る。