如何显示您使用的主要“外壳”?在 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 设置。