実行中のbashのバージョンを確認するにはどうすればよいですか?


161

(bashの学習)bashのバージョンを確認しようとしていたので、入力しました/bin/bash -v

これにより、画面に大量のテキストが出力されました(.bashrcのコンテンツ、およびそのソースとなるその他のファイル)。

そのコマンドのために何かを台無しにした可能性がありますか(設定ファイルの上書き/間違った環境変数の設定など)。

また、-vスイッチの目的に関するドキュメントも見つかりません。


実行したbash -v場合は、冗長モードをアクティブにして新しいbashシェルを呼び出したため、追加のコマンドの冗長出力が表示されます(最低限表示されますprintf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}")。冗長性を終了するには、exitcommandと入力します-元の非冗長bashシェル(または、使用していたシェル)に戻ります。
-ADTC

回答:


165

-vbash のパラメーターはverboseの略で、bashに実行内容に関する可能な限り多くの情報を出力するよう指示します。起動時に、読み込んでいるすべての構成を印刷します。

bashのバージョン情報を印刷するには、を使用しますbash --version


すばらしいです!bashのスイッチリストも見つけました。
ザバ

33
あるいは、すでに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
ガイラ

2
タイプミスは、のようなものであるべき[ "${BASH_VERSINFO}" -lt 4 ][ "${BASH_VERSINFO[0]}" -lt 4 ]
BUFH

はるかに簡単に、あまりにも冗長askubuntu.com/a/899187/1004
ソリン

この方法の問題は、ログイン時に環境変数を変更したスクリプト、シンボリックリンク、またはその他の種類の設定が100%確実ではないことです。以下で回答したように、Ctrl + x Ctrl + vは、環境変数に関係なく、現在実行中のbashバージョンを正確に表示します。
ベガトリプ

98

bashを実行するとき(fromなどgnome-terminal)、BASH_VERSION環境変数の値を確認できます。

$ echo $BASH_VERSION
4.2.37(1)-release

値が空の場合、実行されていませんbash


11
bash --versionシステムにbashがインストールされていることだけでなく、現在bashを実行していることを確認するため、単に実行するよりも優れています。
フリム

1
+1 bash --versionは、現在使用しているbashを表示しません。
ガベイオ14年

注意:セットBASH_VERSIONはあなたが走っていることを保証するものではありませんbash:でexport BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'、同様に$BASH_VERSIONセットさcshれるかもしれません
Tino

@Tinoもできますが$SHELL --version、ここでもSHELLが上書きされる可能性があります(すべてのシェルは--versionフラグをサポートしていません)。
BUFH

37

現在のシェル情報を表示するよう指示するキーショートカットがあります。

Ctrl+ x Ctrl+v

から man bash

   display-shell-version (C-x C-v)
          Display version information about the current instance of bash.

これは、環境変数が乱れている場合に最適な選択です。


8

いいえ、すべて大丈夫です。からman bash

   --verbose
          Equivalent to  -v.

いつものように静かではありません。試して

--version 

代わりに。


1

通常--versionは多行ボイラープレートが多すぎるので、私が使用しているのは

bash -c 'echo $BASH_VERSION'


4
@wjandreaこれは、PawełNadolskiの回答とは異なります。新しいbashシェルでコマンドを実行します。これが役に立つ1つの方法は、現在使用されているシェルを必要としないということですbash。もう1つは、でも、bash良いとは言えませんBASH_VERSION別の値に設定することができるということです。環境変数としてエクスポートすることもできます。ただし、実行した後でもexport BASH_VERSION=foobar、新しいbashシェルはBASH_VERSIONそれを読み取るパラメーター展開を実行する前に自動的にリセットされるため、ここで指定したメソッドは機能します。
エリアケイガン

@EliahKaganは、私16.04.1 ISOファイルからインストール16.04 LTSシステムをインストール、更新&アップグレードでは、bash --versionと言う4.3.48(1)-releaseapt-cache policy bash言う4.3-14ubuntu1.2と、私は実行することを確認しているbashファイルは、パッケージ「bashの」から来ています。これはどのように解釈されるべきですか?にも同様の不一致がusb-creator-gtkあり、その場合、apt-cacheの出力は正しいです。-高いバージョン番号が正しいと結論づけることができますか(そして誰かが他のバージョン番号を更新するのを忘れていました)?
sudodus

1
@sudodusプログラムのバージョン番号は、それが入ってくるAPTパッケージのバージョン番号と異なる場合があります。それがここに表示されています。4.3.48...はBash 4.3-14...のバージョンであり、bashパッケージのバージョンです。
wjandrea

@EliahKagan前に言及するのを忘れていました、私を修正してくれてありがとう!知識に感謝します。
wjandrea

0

複数行のテキストではなく、バージョンのみを取得するには:

$ bash --version | head -1 | cut -d ' ' -f 4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.