如何判断我正在使用哪个unix shell?
尝试:
echo $0
这通常在一系列弹作品。
mac:~$ ps
PID TTY TIME CMD
223 ttys000 0:00.33 -bash
obsd:~$ ps
PID TT STAT TIME COMMAND
20038 p0 Ss 0:00.01 -ksh (ksh)
22251 p0 R+ 0:00.00 ps
或者只是echo $SHELL
我认为'$ SHELL'是系统(或用户)的默认外壳,通常(但不一定)是在任何给定时刻实际使用的外壳。 – 2010-07-28 02:22:43
我知道的每个shell都将$变量($$)设置为它的pid。 Terminal - ShellName - 80x24
鱼是例外。你需要使用%self – rominf 2014-09-12 18:51:25
如果您使用的是OS X的终端,则外壳在终端的标题栏,当你启动它指定名称相对于根。
我认为这是正确的答案。 – 2015-11-29 01:51:48
的echo $SHELL
命令会给你你的shell:像这样 - 所以...
ps | grep $$
SHELL不保证设置。例如,我的登录shell是bash,但是我在命令行运行了/ bin/sh,即使/ bin/sh ls破折号,SHELL仍然是/ bin/bash。 – 2014-05-12 03:12:36
$ SHELL是登录shell。如果你的登录shell是bash,并且你启动了tcsh,那么$ SHELL将仍然是bash,即使你正在运行的shell是tcsh也是如此。 – 2014-07-18 13:23:37
签出#ps -p $$ |尾-1 | awk'{print $ 4}' – 2014-10-15 05:27:59
不适用于鱼 – rominf 2014-09-12 18:52:06
@rominf:用'fish'只需输入'$',然后选择'tab'。你会看到一堆'$ __ fish'和'$ fish'变量定义 – 2015-03-15 13:15:05
这也不适用于源文件。 – Steve 2017-12-28 23:04:13