(learning bash) Eu estava tentando verificar a versão do bash e digitei /bin/bash -v
.
Isso produziu muito texto na tela (conteúdo de .bashrc e outros arquivos originados nela).
Eu poderia ter estragado algo (como sobrescrever alguns arquivos de configuração / definir variáveis de ambiente incorretas etc.) devido a esse comando?
Também não consigo encontrar documentação sobre a -v
finalidade do switch.
command-line
bash
Zabba
fonte
fonte
bash -v
invocou um novo shell bash com o modo detalhado ativado, portanto, você verá a saída detalhada para outros comandos (no mínimo, você veráprintf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
). Para finalizar a verbosidade, digiteexit
command - você voltará ao shell bash não detalhado original (ou a qualquer shell em que estivesse).Respostas:
O
-v
parâmetro bash significa verbose e instrui o bash a imprimir o máximo de informações possível sobre o que está fazendo. Na inicialização, ele imprimirá toda a configuração em que está lendo.Para imprimir as informações da versão do bash, use
bash --version
.fonte
echo "$BASH_VERSION"
. Há também uma matriz especial (BASH_VERSINFO) que contém cada número de versão em elementos separados.if ((BASH_VERSINFO[0] < 4)); then echo "Sorry, you need at least bash-4.0 to run this script." >&2; exit 1; fi
[ "${BASH_VERSINFO}" -lt 4 ]
ou[ "${BASH_VERSINFO[0]}" -lt 4 ]
Ao executar o bash (por exemplo, de
gnome-terminal
), você pode verificar o valor daBASH_VERSION
variável de ambiente.Se o valor estiver vazio, você não está executando
bash
.fonte
bash --version
, porque confirma que você está executando o bash no momento, não apenas que o bash está instalado no sistema.bash --version
não mostra o bash que você está usando no momento.BASH_VERSION
não garante que você está executandobash
:export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'
, então$BASH_VERSION
pode ser definido nocsh
bem$SHELL --version
, mas novamente o SHELL pode ser substituído (e todo o shell não suporta o sinalizador --version).Há um atalho de chave que instrui as informações atuais do shell a serem exibidas:
Ctrl+ x Ctrl+v
De
man bash
Essa é a melhor opção se você mexeu com variáveis de ambiente.
fonte
Não, está tudo bem. De
man bash
:Não é tão silencioso como sempre. Experimentar
em vez de.
fonte
O habitual
--version
pode fornecer muito clichê de várias linhas, então o que estou usando éfonte
bash
shell. Uma maneira de isso ser útil é que ele não precisa que o shell esteja sendo usado atualmentebash
. Outra é que, mesmo embash
, é possível (embora não seja bom ) definirBASH_VERSION
um valor diferente. Pode até ser exportado como uma variável de ambiente. No entanto, mesmo após a execuçãoexport BASH_VERSION=foobar
, o método fornecido aqui funciona, pois o novobash
shell é redefinidoBASH_VERSION
automaticamente antes de executar a expansão de parâmetros que o lê.bash --version
diz4.3.48(1)-release
eapt-cache policy bash
diz4.3-14ubuntu1.2
e verifiquei se obash
arquivo executável vem do pacote 'bash'. Como isso deve ser interpretado? Existe uma incompatibilidade semelhante parausb-creator-gtk
e, nesse caso, a saída do apt-cache está correta. - Podemos concluir que o número da versão superior é o correto (e alguém esqueceu de atualizar o outro)?4.3.48...
é a versão do Bash,4.3-14...
é a versão dobash
pacote.Para obter apenas a versão e não o texto de múltiplas linhas:
fonte