(学习bash)
我试图检查bash的版本,所以我输入了/bin/bash -v

这会在屏幕上输出很多文本(.bashrc的内容以及其他来自它)。

由于该命令,我是否可以弄乱某些内容(例如覆盖一些配置文件/设置不正确的环境变量等)?

我也找不到有关-v开关的用途的文档。

评论

如果您运行bash -v,则在激活了详细模式的情况下调用了一个新的bash shell,因此您将看到详细命令的详细输出(至少会看到printf“ \ 033] 0;%s @%s:%s \ 007“” $ {USER}“” $ {HOSTNAME %%。*}“” $ {PWD /#$ HOME /〜}“)。若要结束详细信息,请键入exit命令-您将回到原始的非详细bash shell(或您之前所在的任何shell)中。

#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