Linuxなど
ふつうのUNIX系システムでは /etc/passwd
に格納されてるので、これを調べてやればいいです。
% grep $USER /etc/passwd
megurine:x:1000:1000:Megurine Luka,,,:/home/megurine:/usr/bin/zsh
% grep $USER /etc/passwd | cut -d: -f7
/usr/bin/zsh
(AWKならパイプで繋がずに書けるかもしれない)
Mac OS X (v10.5〜)
が、Mac OS Xは「ふつうの」UNIXではないので、この方法では一般ユーザのログインシェルは 取得できません X-D
じゃあどうすればいいか。
OS Xではユーザ情報はOpen Directoryに格納されてるので、これを参照しにいきます。
% dscl localhost -read Local/Default/Users/$USER UserShell
UserShell: /usr/local/bin/zsh
% dscl localhost -read Local/Default/Users/$USER UserShell | cut -d' ' -f2
/usr/local/bin/zsh
ほむ、いい感じですね。やりましたよ。