Duvida na elaboração de Script [RESOLVIDO]

1. Duvida na elaboração de Script [RESOLVIDO]

Eduardo Policarpo
edupoli

(usa Ubuntu)

Enviado em 26/06/2011 - 01:49h

Ola

Pessoal estou montando um script para instalação automática de alguns programas em servidores Ubuntu, e para que o script seja executado com sucesso, será necessário identificar a versão do sistema, uma vez que existe algumas peculiaridades na instalação de acordo com a versão.
Desta forma o algorítimo seria mais ou menos assim:

#!/bin/bash
$versao
if [ $versao = "ubuntu 10.04"] then
comandos
else
if [ $versao = "Ubuntu 10.10"] then
comandos2
etc..........
Ou seja eu estou pensando em armazenar a saída do comando "cat /etc/issue" na variavel "$versao" e depois verificar com o IF se a $variavel é igual a string "x" caso seja executa os comandos, mais não estou conseguindo montar o script alguém poderia me passar um exemplo de como ficaria ? ou se tem outra maneira mais simples de se resolver este problema ?
Sei que é uma coisa simples mais realmente não estou conseguindo montar o script, pois esta dando erro de sintaxe


Desde ja agradeço a atenção


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 26/06/2011 - 13:51h

@eldermarco, legal o lsb_release, não conhecia ainda :-)

@edupoli, se quiser, tente adaptar o script abaixo para você:

-----------------------
#!/bin/bash
$versao
DISTRO=$(lsb_release -is)
VERSAO=$(lsb_release -rs)

# caso case a expressão, adapta o nome da versao (tirando a fração além da versao)
echo "$VERSAO" | grep '10.04*' && VERSAO="10.04"
echo "$VERSAO" | grep '10.10*' && VERSAO="10.10"

case "$VERSAO" in
6)
echo "Você usa o $DISTRO na versão $VERSAO"
;;
esac
exit
--------------------------------------------

Abraços

3. Re: Duvida na elaboração de Script [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 26/06/2011 - 02:26h

Dar para fazer mais ou menos assim;
versao=$(cat /etc/issue | cut -d'\' -f 1)
echo $versao

No meu caso, o cat /etc/issue retorna: "Debian GNU/Linux 6.0 \n \l"
Ai no comando que coloque estou apenas tirando de '\n...' em diante, ficando: "Debian GNU/Linux 6.0"

Abraços



4. Re: Duvida na elaboração de Script [RESOLVIDO]

Eduardo Policarpo
edupoli

(usa Ubuntu)

Enviado em 26/06/2011 - 02:51h

Amigo em primeiro lugar muito obrigado pela ajuda, a sua dica realmente retorna e armazena o valor na variável $versao, porem não consigo montar a condição IF para comparar se o valor armazenado na variavel $versao é igual a uma string "x"

veja o exemplo como estou montando


#!/bin/bash
$versao
versao=$(cat /etc/issue | cut -d'\' -f 1)
if ["$versao" == "Ubuntu 10.10"]; then
echo "e versao 10.10"
fi
if ["$versao" == "Ubuntu 10.04.2 LTS"]; then
echo"e versao 10.04"
fi
exit

ao executar o script retorna o seguinte erro


root@Servidor-CS:/# ./teste.sh
./teste.sh: linha 4: [Ubuntu 10.04.2 LTS : comando não encontrado
./teste.sh: linha 7: [Ubuntu 10.04.2 LTS : comando não encontrado





5. Re: Duvida na elaboração de Script [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 26/06/2011 - 03:09h

Der um espaço depois d "if [", ficando assim:
if [ "$versao.....

E o tratamento vai ficar melhor com expressão regular, só q agora vou durmir :-)

Ate..


6. Re: Duvida na elaboração de Script [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 26/06/2011 - 11:05h

Dê uma pesquisada no comando lsb_release. Ele irá te dar essas informações.


7. Re: Duvida na elaboração de Script [RESOLVIDO]

Eduardo Policarpo
edupoli

(usa Ubuntu)

Enviado em 01/07/2011 - 23:40h

Olá Rai3mb

obrigado pela dica consegui resolver o problema da seguinte forma

#!/bin/bash
$versao
VERSAO=$(lsb_release -rs)
case "$VERSAO" in
10.04)sudo add-apt-repository "deb http://archive.canonical.com/ubuntu lucid partner";;
10.10)sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner";;
esac



8. Re: Duvida na elaboração de Script [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 02/07/2011 - 00:15h

Blz.

Marque o tópico como resolvido, para se caso outro precise, vai facilitar a localização da solução :-)

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts