ghoostuser 
		 
		(usa Arch Linux)
		 
		Enviado em 25/11/2015 - 21:43h 
		conectadohost escreveu:
Olá,
testei no meu CentOS eu acrescentei o else e o echo para verificar se não estava concluindo todo o script
echo "Distribuição suportada!"
else
echo " Não encontramos sua distribuição "
fi
done
ele faz a leitura normal com o cat /etc/*-release
acredito eu que como o nome da distribuição tenha espaço tipo o meu CentOS release 6.7 (Final)
o script do modo que foi programado está fazendo a leitura somente do inicio como esta na variável
VET_DISTRO=("CentOS Linux" "Arch Linux" "Fedora" "Debian GNU/Linux")
ou seja ele lê somente CentOS e acusa como não encontrado 
acho que  esse script teria que mudar a forma de testar as variaveis 
salvei 2 prints de como ele rodou aqui
http://prntscr.com/96z6wr 
http://prntscr.com/96z75b 
Tambem fiz da seguinte forma coloquei o nome correto da minha distribuição dentro da variavel
VET_DISTRO=("CentOS release 6.7 (Final)")
ele exibiu 4 mensagens
Não encontramos sua distribuição
 Não encontramos sua distribuição
 Não encontramos sua distribuição
 Não encontramos sua distribuição
ai você vai me perguntar mas por que ele exibiu 4 mensagens sendo que você colocou somente um nome da distribuição
por que o script entende que quando você coloca o nome com espaço dessa forma CentOS release 6.7 (Final)
ele entende que são 4 nomes para pesquisar.
gabrielscorpion escreveu:
Galera, tenho esse script abaixo:
     
 
#!/bin/bash 
 
DISTRO=$(cat /etc/*-release | grep ^NAME | cut -d'=' -f2 | cut -d'"' -f2) 
 
VET_DISTRO=("CentOS Linux" "Arch Linux" "Fedora" "Debian GNU/Linux") 
 
for i in ${VET_DISTRO[*]} 
    do 
      if [[ "$i" == "$DISTRO" ]];then 
       echo "Distribuição suportada!" 
      fi 
done 
 
  
...o que eu quero é fazer uma comparação com as strings do vetor que são nome das distribuições, com o nome da distro atual retirado
da variavel DISTRO.
Só que esse script num da retornando certo a mensagem "Distribuição suportada". 
Alguem pode me ajudar?
Grato :) 
 
---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <--- 
 
1)
Bom, acho que não tem nada a ver o espaço.
É uma comparação de strings, como se fosse igual esse de baixo, que da certo:
 
DISTRO="CentOS Linux" 
if [[ "$DISTRO" == "CentOS Linux" ]]; then 
  echo "igual" 
else 
  echo "não é igual" 
fi 
  
Porem ai em cima, a variavel DISTRO esta recebendo um valor fixo, ja com este comando:
 
DISTRO_NAME=$(cat /etc/*-release | grep ^NAME | cut -d'=' -f2 | cut -d'"' -f2) 
  
Vai me retornar o nome da distro retirado da variavel NAME do arquivo "/etc/*-release". Porem o valor irá ser igual a esse mesmo, o dê "CentOS Linux". Bom, pelo menos no meu CentOS o comando da variavel DISTRO_NAME retorno isso.
2) Eu não sei por qual motivo o seu comando "cat /etc/*-release" retornou apenas uma unica linha 
 no seu CentOS. Quando testei no meu esse unico comando com o cat, sem os "cut" e "grep", me 
retorna informações contendo o PRETTY, NAME, ID..etc. Tipo assim:
     
cat /etc/*-release 
PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 
NAME="Debian GNU/Linux" 
VERSION_ID="8" 
VERSION="8 (jessie)" 
ID=debian 
HOME_URL="http://www.debian.org/" 
SUPPORT_URL="http://www.debian.org/support/" 
BUG_REPORT_URL="https://bugs.debian.org/"