判断你当前使用的shell程序

来源:互联网 发布:电信网络电视多少钱 编辑:程序博客网 时间:2024/06/05 02:40

    对于游走在多种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"。