如何显示您使用的主要“外壳”?在UNIX中

如何显示您使用的主要“外壳”?在UNIX中

如何显示您使用的主要“外壳”?在 UNIX 中,这个命令正确 ps -p$$ 或者是否有不同的方法?

答案1

$$是当前进程。

ps -p$$因此会向您显示当前的进程 - 在本例中是您的 shell。

你也可以echo $SHELL

或者

getent passwd | grep ^`whoami`: | awk -F: '{print $NF}'

答案2

要获得默认 shell,您只需打印$SHELL变量即可:

$ echo $SHELL
/bin/bash

虽然这是POSIX 未定义,它适用于我测试过的所有 shell(ash、bash、dash、fish、csh、ksh、tcsh 和 zsh)。

如果该命令不适用于您的环境,您可以随时查看/etc/passwd.例如,在Linux系统上(也可能是UNIX,但我不知道),用户的shellfoo由以下命令给出:

grep '^foo:' /etc/passwd | cut -d: -f7

要获取当前正在运行的 shell,您可以使用:

ps -p $$ | tail -n1 | awk '{print $NF}'

答案3

我只是要添加到其他答案中,如果您想测试特定的 SHELL,您可以使用以下命令:

  • 重击:echo $BASH
  • 克什:echo $KSH_VERSION

这些变量将由您正在运行的相应 shell 设置。

相关内容