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.
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) –