如何查看当前正在运行的shell是bash zsh 还是 *sh

发布于 2024-01-07

如题,有时候登入一台陌生的服务器,我们可能想要先确认下我在使用的是哪个 shell.

方式一: echo $0

$0 表示当前正在执行的脚本或命令的名称。

echo $0

输出如下:

bash

在交互式的终端中执行,它将显示当前使用的 shell 的名称,例如 bash、zsh 等。

如果在一个脚本中运行这个命令,它将输出脚本文件的名称。 例如,如果有一个脚本文件名为 myscript.sh ,并在其中包含了 echo $0 ,那么当运行这个脚本时,它将输出 myscript.sh

方式二: ps -p $$

$$ 表示当前正在执行的 shell 进程的 PID

ps -p $$

输出如下:

   PID TTY          TIME CMD
424568 pts/0    00:00:00 bash

不可取的方式: echo $SHELL

$SHELL 表示当前登录用户的 默认 shell 的路径

注意是 默认shell, 而不一定是当前使用的 shell。

例如我默认使用的是 zsh, 当我临时切换到 bash 下时, $SHELL 变量并不会改变。