我想使用Linux命令了解我的shell版本。我尝试了下面的命令,但它显示的是我所在的shell类型。
命令:
命令:
echo $SHELL
结果:
/bin/bash
这将会完成它:
$SHELL --version
在我的情况下,输出结果为:
zsh 5.0.2 (x86_64-pc-linux-gnu)
--version
选项,但大多数都有,因此这可能是你最好的选择。 - torek$SHELL
变量相匹配。请使用 /proc/self/exe --version
命令。 - x-yuriecho $BASH_VERSION
对于 tcsh
:
echo $version
对于 zsh
:
echo $ZSH_VERSION
echo $ZSH_PATCHLEVEL # shows more detailed information
对于 ksh
:
echo $KSH_VERSION
对于fish
:
echo $version
再次强调,这假设相关变量没有被修改过(很少有非恶意的理由去更改它)。
特别地,Bash拥有一个数组变量$BASH_VERSINFO
,提供了更多信息并以一种更易于程序处理的形式呈现。仅打印$BASH_VERSINFO
将只打印第一个元素;要打印所有元素:
echo "${BASH_VERSINFO[@]}"
dash
似乎没有版本命令行选项或命令。在Debian或Ubuntu上,dpkg -l dash
将告诉您安装的版本,但不一定是您正在运行的版本。 - Keith Thompson/bin/dash
包含字符串6323dd0fe3ec5af388e4ea4217a1f0092961d2.debug
,看起来像是某种提交ID。这对应于Dash版本0.5.10.2-5。 - tripleee2a16ad1517b3d714e7b3bdb5470b2c82eb25ff.debug
,同樣的情況。 - Keith ThompsonUbuntu 18.04
$ sh -c './whatshell.sh'
ash (Busybox 1.x)
$ bash -c './whatshell.sh'
bash 4.4.19(1)-release
CentOS 4
$sh -c './whatshell.sh'
bash 3.00.15(1)-release
太阳能 10
~> sh -c './whatshell.sh'
ksh88 Version (..-)11/16/88i (posix octal base)
~> bash -c './whatshell.sh'
bash 4.1.7(3)-release
~> csh -c './whatshell.sh'
SVR4 Bourne shell (SunOS 5 variant)
AIX 6.1
~> sh -c './whatshell.sh'
ksh88 Version (..-)11/16/88f
~> bash -c './whatshell.sh'
bash 4.2.0(1)-release
这也是对标记为离题的问题Bourne shell版本的答案。
只需使用命令
echo $BASH_VERSION
它将会给出您的shell版本。BASH_VERSION是包含shell版本的环境变量。
bash
,确实尝试bash --version
。或者使用您的软件包管理系统(在Debian或Ubuntu上使用dpkg -l bash
)。 - Basile Starynkevitch