我试图检查bash的版本,所以我输入了
/bin/bash -v
。这会在屏幕上输出很多文本(.bashrc的内容以及其他来自它)。
由于该命令,我是否可以弄乱某些内容(例如覆盖一些配置文件/设置不正确的环境变量等)?
我也找不到有关
-v
开关的用途的文档。#1 楼
bash的-v
参数代表详细信息,并指示bash打印出尽可能多的有关其操作的信息。启动时,它将打印出正在读取的所有配置。要打印出bash的版本信息,请使用
bash --version
。评论
大!我还找到了bash的开关列表。
–扎巴
2011年5月2日在17:21
另外,如果您已经在运行bash shell,则可以输出特殊BASH_VERSION变量的内容。回显“ $ BASH_VERSION”。还有一个特殊的数组(BASH_VERSINFO),在单独的元素中包含每个版本号。如果((BASH_VERSINFO [0] <4));然后回显“对不起,您至少需要bash-4.0才能运行此脚本。” >&2; 1号出口;科幻
– Geirha
2011年5月2日在20:42
错字,应类似于[“ $ {BASH_VERSINFO}” -lt 4]或[“ $ {BASH_VERSINFO [0]}” -lt 4]
–bufh
15年4月22日在11:51
太冗长,使用askubuntu.com/a/899187/1004更容易
–索林
17年4月1日在14:30
这种方法的问题在于,您不能百分百确定在登录时更改了任何环境变量的任何脚本,符号链接或任何其他种类的混乱配置。正如我在下面回答的那样,Ctrl + x Ctrl + v将向您确切显示您当前正在运行的bash版本,而不管任何环境变量如何。
–蔬菜
17年7月11日在8:53
#2 楼
运行bash时(例如从gnome-terminal
开始),您可以检查BASH_VERSION
环境变量的值。$ echo $BASH_VERSION
4.2.37(1)-release
如果该值为空,则说明您不在运行
bash
。评论
这比仅运行bash --version更好,因为它确认您当前正在运行bash,而不仅仅是确认您的系统上已安装bash。
– Flimm
13年4月11日在9:23
+1 bash --version不显示您当前正在使用的bash。
– Gabeio
2014年3月6日在1:38
当心:设置BASH_VERSION不能确保您正在运行bash:export BASH_VERSION; csh -c'echo $ BASH_VERSION $ SHELL $ shell',因此也可以在csh中设置$ BASH_VERSION
– Tino
2014年11月25日19:48
@Tino很好,您可以执行$ SHELL --version,但是再次SHELL可能会被覆盖(并且所有shell不支持--version标志)。
–bufh
15年4月22日在11:43
与$ SHELL --version相比,强烈建议$ BASH_VERSION。在Mac上需要这样做,以确保我没有在托管(最新)软件包上使用bash,bash具有$ SHELL = / bin / bash,但已正确配置并运行了我想要的版本。不幸的是,在这里不能再投票。
–user2943160
20年1月9日在4:00
#3 楼
有一个快捷键指示当前的外壳信息显示:来自
man bash
display-shell-version (C-x C-v)
Display version information about the current instance of bash.
如果您弄乱了环境变量,这是最佳选择。
#4 楼
不,一切都很好。来自man bash
: --verbose
Equivalent to -v.
它并不像往常一样安静。试试
--version
代替。
#5 楼
常见的--version
可能会给您太多多行样板,所以我正在使用的是bash -c 'echo $BASH_VERSION'
评论
重复Pawel的答案
– wjandrea
17年4月1日在14:49
@wjandrea这与PawełNadolski的答案不同。它在新的bash shell中运行命令。一种有用的方法是,它不需要当前用于bash的shell。另一个是,即使在bash中,也可以(尽管不好)将BASH_VERSION设置为其他值。它甚至可以作为环境变量导出。但是即使在运行export BASH_VERSION = foobar之后,此处给出的方法仍然有效,因为新的bash shell在执行读取它的参数扩展之前会自动重置其自己的BASH_VERSION。
– Eliah Kagan
17-9-28 17:02
@EliahKagan,在从16.04.1 iso文件安装的更新和升级的已安装16.04 LTS系统中,bash --version表示4.3.48(1)-release和apt-cache policy bashsays 4.3-14ubuntu1.2,我已经检查了可执行的bash文件来自软件包“ bash”。应该如何解释? usb-creator-gtk存在类似的不匹配问题,在这种情况下,apt-cache输出正确。 -我们是否可以得出结论,较高的版本号是正确的版本号(而有人忘记更新另一个版本号)?
– sudodus
18年2月21日在15:58
@sudodus程序的版本号可能与所包含的APT软件包的版本号不同。这就是您在此处看到的内容。 4.3.48 ...是Bash的版本,4.3-14 ...是bash软件包的版本。
– wjandrea
19年5月25日在16:12
@EliahKagan我之前忘记提及,感谢您对我的指正!我很感谢这些知识。
– wjandrea
19年5月25日在16:14
#6 楼
仅获取版本而不获取多行文本:$ bash --version | head -1 | cut -d ' ' -f 4
#7 楼
如果您使用的是Windows,并且想知道您正在运行的是什么版本的Git Bash,则它是Windows版Git的一部分。因此,Git Bash的版本是:
git --version
git版本2.23.0.windows.1
在同一台机器上运行时:
echo $BASH_VERSION
4.4.23(1)-发行版
要更新到最新版本,通常您需要下载并安装最新版本根据常见问题解答适用于Windows的git版本。如果安装在适当的配置文件夹中,则应保留设置/自定义。
评论
感谢Sheryl,但这不是Ubuntu论坛吗?
–库兰卡特
20 Mar 29 '20在23:13
猜是这样。对于那个很抱歉。我一直在寻找Git Bash,Google给了我这篇文章,并且我没有关注我所在的StackExchange网站。我发布了信息,以便下次可以轻松找到该信息,因为甚至连这篇文章都花了好几次尝试才能找到。
– SherylHohman
20 Mar 30 '20 3:40
评论
如果您运行bash -v,则在激活了详细模式的情况下调用了一个新的bash shell,因此您将看到详细命令的详细输出(至少会看到printf“ \ 033] 0;%s @%s:%s \ 007“” $ {USER}“” $ {HOSTNAME %%。*}“” $ {PWD /#$ HOME /〜}“)。若要结束详细信息,请键入exit命令-您将回到原始的非详细bash shell(或您之前所在的任何shell)中。