判斷你當前使用的shell程序

    對於遊走在多種shell中的孩子,想知道當前用的是zsh還是bash,應該怎麼辦呢?

    這個問題似乎很簡單是吧?google答案一大堆, 有用env的,有查看$SHELL的,但這些都不嚴謹,直接說就是有坑。

    例如我平常用的shell是zsh,什麼env、echo $SHELL的都能顯示是zsh;但是,當我在zsh中輸入bash,打開一個子shell時,用上面兩個命令,顯示的缺依然是zsh。

    差點就想自己寫個命令來判斷了;再google了一下,看到了一個很聰明簡單的方法(我真蠢。。):

    echo $0

    在bash下會輸出"bash"或"/bin/bash"之類的,在zsh下則是"/bin/zsh"等。

    $0代表的是什麼意思呢?根據http://www.mcsr.olemiss.edu/unixhelp/scrpt/scrpt2.2.2.html裏的表達,是指當前正執行的命令;在命令行直接echo會返回shell程序,在腳本,如script.sh中"echo $0"的話,則會輸出該腳本的名字,"script.sh"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章