Answers:
-v
bash 的参数表示详细信息,指示bash打印出尽可能多的有关其操作的信息。启动时,它将打印出正在读取的所有配置。
要打印出bash的版本信息,请使用bash --version
。
echo "$BASH_VERSION"
。还有一个特殊的数组(BASH_VERSINFO),在单独的元素中包含每个版本号。if ((BASH_VERSINFO[0] < 4)); then echo "Sorry, you need at least bash-4.0 to run this script." >&2; exit 1; fi
[ "${BASH_VERSINFO}" -lt 4 ]
或[ "${BASH_VERSINFO[0]}" -lt 4 ]
在运行bash(例如from gnome-terminal
)时,您可以检查BASH_VERSION
环境变量的值。
$ echo $BASH_VERSION
4.2.37(1)-release
如果该值为空,则您未在运行bash
。
bash --version
,因为它确认您当前正在运行bash,而不仅仅是确认您的系统上已安装bash。
bash --version
不会显示您当前正在使用的bash。
BASH_VERSION
并不能保证你正在运行bash
:export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'
,所以$BASH_VERSION
可以在设定csh
以及
$SHELL --version
,但是再次SHELL可能会被覆盖(并且所有shell不支持--version标志)。
通常--version
可能会给您太多多行样板,所以我正在使用的是
bash -c 'echo $BASH_VERSION'
bash
shell中运行命令。一种有用的方法是,它不需要当前使用的shell bash
。另一个问题是,即使在中bash
,也可以(尽管不好)将其设置BASH_VERSION
为其他值。它甚至可以作为环境变量导出。但是即使在运行后export BASH_VERSION=foobar
,此处给出的方法仍然有效,因为新的bash
外壳程序会BASH_VERSION
在执行读取它的参数扩展之前自动重置其自身。
bash --version
说,4.3.48(1)-release
然后apt-cache policy bash
说4.3-14ubuntu1.2
,我已经检查了可执行bash
文件是否来自软件包“ bash”。应该如何解释?存在与相似的不匹配usb-creator-gtk
,在这种情况下apt-cache输出正确。-我们是否可以得出结论,较高的版本号是正确的版本号(而有人忘记更新另一个版本号)?
4.3.48...
是Bash 4.3-14...
的版本,是bash
软件包的版本。
仅获取版本而不获取多行文本:
$ bash --version | head -1 | cut -d ' ' -f 4
bash -v
了该程序,则在激活了详细模式的情况下调用了一个新的bash shell,因此您将看到详细的输出以获取其他命令(至少会看到printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
)。要结束冗长,请键入exit
命令-您将回到原始的非冗长的bash shell(或您之前所在的任何shell)。