GNU/Linux >> Linux の 問題 >  >> Linux

Linux コマンドを使用してシェルのバージョンを確認するにはどうすればよいですか?

シェルに、バージョンを直接判別するためのコマンド ライン パラメーターがない場合があります。このケースはボーンシェルです。 Bourne シェルの場合は、スクリプト https://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh を使用することをお勧めします。スクリプトは非常に小さいので、レビューしてどのように機能するかを理解するのは大きな問題ではありません。 Linux と Solaris のさまざまなシェル内でこのスクリプトをテストしたところ、常にシェルのバージョンが表示されました。

いくつかの例:

Ubuntu 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 シェル バージョンの質問に対する回答でもあります。


コマンドを使うだけ

echo $BASH_VERSION

シェルのバージョンを提供する必要があります。 BASH_VERSION は、シェルのバージョンを含む環境変数です。


デフォルトのログイン シェルのバージョンを知りたいのか、それとも現在実行中のシェルのバージョンを知りたいのかによって異なります。それらは必ずしも同じではありません。

受け入れられた回答が示すように、デフォルトのログインシェルの場合、 $SHELL --version 動作する可能性があります。ほとんどの (すべてではない) シェルは --version を受け入れます オプション。 (dash しません。) そして、これは $SHELL の値が 変更されていません (変更する正当な理由がある場合があります)。

現在実行中のシェルの場合、たまたま bash 次のように入力できます:

echo $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[@]}"

これでできます:

$SHELL --version

私の場合、出力は次のとおりです。

zsh 5.0.2 (x86_64-pc-linux-gnu)

Linux
  1. LinuxでアクティブなSSH接続を見つける方法

  2. コマンドラインを使用してLinuxを再起動する方法

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?

  1. Linuxシェルスクリプトで正規表現を使用してファイルを検索する方法

  2. Linux を使用してドライブ内のフォルダー数をカウントするにはどうすればよいですか?

  3. 使用している Linux のバージョンを確認するにはどうすればよいですか?

  1. Linuxでパッケージバージョンを見つける方法

  2. Linux コマンドを使用して OS とバージョンを確認する方法

  3. Linux の「find」コマンドを使用して隠しファイルを表示する方法