Então, eu estou tentando criar um bash / executável, e preciso saber o número da versão do Ubuntu no sistema. Todas as maneiras que encontrei on-line consistem lsb_release -r
, no entanto, não posso gerar isso em uma variável.
Existe alguma maneira de obter a versão atual do Ubuntu e salvar como uma variável em um executável shell?
command-line
bash
scripts
a.mosallaei
fonte
fonte
Respostas:
Deve fazer o truque.
Para a parte numérica, adicione apenas isso:
O
lsb-release
arquivo de variáveis/usr/bin/lsb_release
é um script Python. É um script curto que serve como uma boa introdução à linguagem python. Como outros mencionaram, uma maneira mais curta de obter apenas o número da versão é comlsb_release -sr
.O
/etc/lsb-release
arquivo define variáveis ambientais com as mesmas informações fornecidas pelolsb_release -a
comando:Você pode incluir essas variáveis de ambiente a qualquer momento usando
. /etc/lsb-release
. Para testar no seu terminal:fonte
Release: 18.04
. No entanto, existe uma maneira de obter apenas o número? Eu quero poder usar essa variável em uma função if / else no script. O objetivo do if / else é baixar a versão correta do meu aplicativo para a distribuição do ubuntu.Uma alternativa é usar o
/etc/os-release
arquivo. Isso é formatado como uma lista de variáveis de shell:Portanto, uma maneira fácil de analisar é simplesmente
source
o arquivo:Para evitar definir todas essas variáveis desnecessariamente, você pode originar o arquivo em um subshell , ecoar a variável necessária e sair do subshell:
Como alternativa, você sempre pode apenas analisar o arquivo diretamente:
fonte
O
lsb_release
comando suporta uma opção-s
(ou--short
) para imprimir apenas as informações solicitadas e não o cabeçalho que diz que tipo de informação é essa.Para obter apenas o número da versão, basta executar:
Por exemplo, no Ubuntu 18.04 LTS, isso gera:
Como no método da resposta do WinEunuuchs2Unix , ainda é razoável usar a substituição de comando para atribuir essa saída a uma variável do shell. Supondo que você desejasse que a
ver
variável contivesse o número do release:Com
-s
, não há necessidade de analisar o número comcut
,sed
,grep
,awk
, formas mais complexas de expansão de parâmetros , ou algo semelhante.Nesse uso, as
"
"
aspas são opcionais, mas geralmente sugiro citar a expansão de parâmetros e outras expansões de shell exceto quando há um motivo para não fazê-lo.fonte
lsb_release
Comandos curtos e simples .Para imprimir apenas a versão
Resultado:
Para imprimir a descrição
Resultado:
Sobre sinalizadores usados aqui:
fonte