【发布时间】:2011-03-21 22:23:15
【问题描述】:
有没有一种简单的方法可以让我知道我在哪种类型的 Unix shell 中?
显示我是否在 Bash、C shell、KornShell (ksh)、tcsh 或 Z shell (zsh) 中的命令?
例如,
whatshellisthis
【问题讨论】:
有没有一种简单的方法可以让我知道我在哪种类型的 Unix shell 中?
显示我是否在 Bash、C shell、KornShell (ksh)、tcsh 或 Z shell (zsh) 中的命令?
例如,
whatshellisthis
【问题讨论】:
ps
PID TTY TIME CMD
223 ttys000 0:00.33 -bash
ps
PID TT STAT TIME COMMAND
20038 p0 Ss 0:00.01 -ksh (ksh)
22251 p0 R+ 0:00.00 ps
或者只是echo $SHELL。
【讨论】:
$SHELL 是系统(或用户)的默认外壳,通常(但不一定)是在任何给定时刻实际使用的外壳。
试试:
echo $0
这通常适用于一系列 shell。
【讨论】:
fish 只需输入$,然后输入tab。你会看到定义了一堆$__fish 和$fish 变量
我所知道的每个 shell 都将 $ 变量 ($$) 设置为其 pid。所以...
ps | grep $$
【讨论】:
如果您使用的是 OS X 终端,那么当您启动终端时,shell 会在终端的标题栏中指定 - 如下所示:Terminal - ShellName - 80x24
【讨论】:
echo $SHELL 命令将为您提供相对于 root 的 shell 名称。
【讨论】: