回答:
$SHELL
は必ずしも現在のシェルではなく、デフォルトのログインシェルです。使用しているシェルを確認するには、試してください
ps $$
これはps
、BSD構文をサポートする最新のUnix / Linuxで動作するはずです。それ以外の場合、これはポータブル(POSIX)方法です
ps -p $$
実行している場合、次のような結果が返されますtcsh
。
8773 pts/10 00:00:00 tcsh
tcsh
デフォルトのシェルにしたい場合は、を使用chsh
して設定します。
chsh
、.bashrc
あなたは私がしている場合はbashを実行している)だけ読み込まれると、ii)インタラクティブ、非ログインシェルとしてそれを実行しています。このマシンにどのようにログインしていますか?
ps $$
これはLinuxで機能します:
lsof -a -p $$ -d txt
または、より強力な選択(より多くのシステム)が必要な場合:
lsof -a +D /bin +D /usr/bin -p $$ -d txt
これは、上記のすべてのより良い答えの修正です。ある時点でダッシュを識別する小さな問題がありました。共有するのが正しいように見えました:
curl -fsSL http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh | sh
ash (dash 0.5.5.1 ff)
curl -fsSL http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh | bash
bash 4.3.30(1)-release
狭い場所でのトラブルシューティングに適しています。乾杯。
tcsh/csh
現在のシェルは$shell