Edited at

ユーザのログインシェルを調べる

More than 5 years have passed since last update.


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

ほむ、いい感じですね。やりましたよ。


参考資料