我想知道$ 0和$ SHELL之間的確切區別。我知道這兩個是用來了解shell的信息。 如果有人用例子解釋,那將會很棒。
這表明兩者是否顯示如下不同的值?
# echo $0
ksh
# echo $SHELL
/sbin/sh
#
我想知道$ 0和$ SHELL之間的確切區別。我知道這兩個是用來了解shell的信息。 如果有人用例子解釋,那將會很棒。
這表明兩者是否顯示如下不同的值?
# echo $0
ksh
# echo $SHELL
/sbin/sh
#
SHELL只是一個環境變量,而$ 0是當前正在運行的程序的路徑。 SHELL設置爲默認值,但不一定設置爲登錄時獲得的shell的路徑。如果你調用一個新的shell,它不會改變。例如:
$ echo $0 $SHELL
bash /bin/bash
$ exec csh
% echo $0 $SHELL
csh /bin/bash
它有一定的意義。感謝您的回覆。 – 2012-03-21 13:29:58
$ SHELL給出了完整路徑默認殼。
$ 0給出您的當前殼的名稱。
感謝您的快速回復。但是,這兩個變量是如何指向兩個不同的殼。也就是說,$ 0表明它是一個Bourne shell,而$ SHELL是說它是一個korn shell?你可以在這裏扔點燈嗎? – 2012-03-21 12:35:31
@Vinod:你如何運行ksh?它是你的登錄shell嗎? – geoffspear 2012-03-21 12:41:04
您的登錄shell是sh,並且您正在執行命令的shell是ksh。看起來你正在運行一個圖形環境並從那裏打開一個ksh提示符,對嗎? – ONOZ 2012-03-21 12:50:57
請注意,shell變量(以及其他所有內容)在unix中區分大小寫。 – dmckee 2012-03-21 22:00:29