2016-07-07 9 views
7

Ich möchte über meine Shell-Version mit einem Linux-Befehl wissen. Ich habe versucht, den folgenden Befehl ein, aber es zeigt die Art der Schale in dem ich michWie finde ich meine Shell-Version mit dem Linux-Befehl?

Befehl:.

echo $SHELL 

Ergebnis:

/bin/bash 
+0

Beachten Sie, dass Sie eine seltsame Shell verwenden können, auch eine, die nicht POSIX-kompatibel ist (zB [Fisch] (http://fishshell.com/) oder [es] (https://wryun.github.io/es) -Schale/)...). Sie sollten wissen, welche Shell Sie verwenden. Wenn es "Bash" ist, versuchen Sie tatsächlich 'bash --version'. Oder benutze dein Paketverwaltungssystem ('dpkg -l bash' auf Debian oder Ubuntu) –

Antwort

12

Dies wird es tun:

$SHELL --version 

In meinem Fall ist der Ausgang:

zsh 5.0.2 (x86_64-pc-linux-gnu) 
+2

Nicht alle Shells haben eine '--version'-Option, aber mehr tun als nicht, also ist dies wahrscheinlich deine beste Wette. – torek

+1

Es funktioniert @ Muhammad Sumon Molla Selim – sago

+0

Ich habe ein paar Kleinigkeiten darüber; siehe [meine Antwort] (https://stackoverflow.com/a/38240328/827263). –

4

Es hängt davon ab, ob Sie die Version Ihrer Standard-Login-Shell oder die Version der Shell, die Sie gerade ausführen, wissen möchten. Sie sind nicht unbedingt gleich.

Für Ihre Standard-Login-Shell, wie die angenommene Antwort sagt, $SHELL --version wird wahrscheinlich funktionieren. Die meisten (aber nicht alle) Schalen akzeptieren eine --version Option. (dash nicht.) Und dies setzt voraus, dass der Wert $SHELL nicht geändert wurde (es kann gültige Gründe dafür geben).

Für die Shell Sie zur Zeit laufen lassen, wenn es bash Sie können sein geschieht Typ:

echo $BASH_VERSION 

Für tcsh:

echo $version 

Für zsh:

echo $ZSH_VERSION 

Für ksh:

echo $KSH_VERSION 

Für fish:

echo $version 

Auch dies setzt voraus, dass die relevante Größe nicht verändert wurde (es gibt selten einen nicht-bösartigen Grund, es zu ändern).

Bash insbesondere hat eine Array-Variable $BASH_VERSINFO, die mehr Informationen in einer Form gibt, die programmgesteuert einfacher zu verarbeiten ist.

+0

Dies ist eine bessere Antwort. – ocertat

Verwandte Themen