Dipende se si desidera conoscere la versione della shell di accesso predefinita o la versione della shell attualmente in esecuzione. Non sono necessariamente uguali.
Per la shell di accesso predefinita, come dice la risposta accettata, è probabile che lo $SHELL --version
funzioni. La maggior parte (ma non tutte) le shell accettano l'opzione --version
. (dash
no.) E ciò presuppone che il valore di $SHELL
non sia stato modificato (ci possono essere validi motivi per farlo).
Per la shell si sta attualmente in esecuzione, se capita di essere bash
è possibile digitare:
echo $BASH_VERSION
Per tcsh
:
echo $version
Per zsh
:
echo $ZSH_VERSION
Per ksh
:
echo $KSH_VERSION
Per fish
:
echo $version
Ancora una volta, questo presuppone che la variabile in questione non è stato modificato (raramente c'è alcuna ragione non dannoso per cambiarlo).
Bash in particolare ha una variabile di matrice $BASH_VERSINFO
che fornisce più informazioni in un modulo che è più facile da elaborare a livello di codice.
fonte
2016-07-07 07:59:49
Si noti che è possibile utilizzare alcune shell strane, anche una che non è conforme a POSIX (ad esempio [pesce] (http://fishshell.com/) o [es] (https://wryun.github.io/es -conchiglia/)...). Dovresti sapere quale shell stai usando. Se è 'bash', in effetti prova' bash --version'. Oppure usa il tuo sistema di gestione dei pacchetti ('dpkg -l bash' su Debian o Ubuntu) –