echo $SHELL
を実行すると 出力には/bin/tcsh
と表示されます これは、tcsh
を実行していることを意味します シェル。
しかし、たとえば、次のコマンドを発行した場合
alias emacs 'emacs -nw'
次のエラーが発生します:
bash: alias: emacs: not found
bash: alias: emacs -nw: not found
alias emacs="emacs -nw"
を発行すると 正常に動作します!
tcsh
を実行しているので、これは混乱を招きます ただし、コマンドはbash
によって解釈されます 。
理由は何でしょうか?
承認された回答:
$SHELL
必ずしも現在のシェルである必要はなく、デフォルトのログインシェルです。使用しているシェルを確認するには、
ps $$
これは、ps
を使用する最新のUnix/Linuxで機能するはずです。 BSD構文をサポートします。それ以外の場合、これはポータブル(POSIX)の方法です
ps -p $$
tcsh
を実行している場合は、次のようになります。 :
8773 pts/10 00:00:00 tcsh
tcsh
が必要な場合 デフォルトのシェルにして、chsh
を使用します 設定します。