Bash
$SHELL 是否儲存 Linux 中預設 shell 的路徑?
我的管理員說我的預設 shell 設置為
bash
,但是$ echo $SHELL /bin/csh $
預設 shell 是否與
SHELL
變數相關?不是,這個變數是乾什麼用的?
這不是 100% 正確的。例如:
$> echo $SHELL /bin/bash $> /bin/ksh $] echo $SHELL /bin/bash
$ SHELL contains the parent shell for your session, which is commonly your login shell as dictated by your user entry in /etc/passwd. More clearly, $ SHELL 是生成目前會話的父 shell。在我的範例中,目前的外殼程序 Korn 在 BASH 中技術上執行,這就是 $SHELL 未修改的原因。
顯然,這幾乎完全是語義上的區別,但是,不要陷入相信所見即所得的陷阱。