判斷你當前使用的shell程式

2021-06-19 03:09:04 字數 453 閱讀 4941

對於遊走在多種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代表的是什麼意思呢?根據裡的表達,是指當前正執行的命令;在命令列直接echo會返回shell程式,在指令碼,如script.sh中"echo $0"的話,則會輸出該指令碼的名字,"script.sh"。

檢視當前使用的shell

來自 ps grep awk 實時 不帶引數的ps命令顯示和當前終端有關的程序狀況 變數儲存當前程序的pid ps第四列是程序所使用的命令,如果是shell,那麼顯示shell名,比如sh ksh等 awk 就是只顯示第四列的值 ps 用echo shell可以檢視系統預設的shell 檢視當前發行...

檢視當前使用的shell

來自 ps grep awk 實時 不帶引數的ps命令顯示和當前終端有關的程序狀況 變數儲存當前程序的pid ps第四列是程序所使用的命令,如果是shell,那麼顯示shell名,比如sh ksh等 awk 就是只顯示第四列的值 ps 用echo shell可以檢視系統預設的shell 檢視當前發行...

檢視當前使用的shell

1 實時檢視當前程序中使用的shell種類 推薦 ps grep awk 注 表示shell的程序號 2 最常用的檢視shell的命令,但不能實時反映當前shell echo shell 3 更簡潔,但並不是所有shell都支援 echo 0 4 環境變數中shell的匹配查詢 env grep s...