Comparar de variável, com caractere [RESOLVIDO]

1. Comparar de variável, com caractere [RESOLVIDO]

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 18/08/2019 - 20:45h

Olá pessoal, saudações!

Estou precisando comparar o conteúdo de uma variável com um caractere, para validar a opção que o usuário escolher.
Meu problema está na comparação, já tentei colocar o caractere entre " " (aspas duplas), mas é como se seu valor fosse ignorado. Tentei com aspas simples e o mesmo acontece. Usando a crase até consegui, mas a função dela não é esta, e aparecem alguns erros:
/home/lucas/test.sh: linha 26: [sSnN]: comando não encontrado
/home/lucas/test.sh: linha 26: [: s: esperava operador unário


Também tentei deixar apenas os caracteres, sem aspas, mas sem sucesso.
Segue o código:
echo -en "Verificando requisitos...\n"
echo -en "Arquitetura: ${arq}\n"
echo -en "Gerenciador de download aria2: "
dpkg --get-selections | grep aria2 | grep -o install
if [ ${?} == 0 ] # Se aria2c não estiver instalado (o == é só para teste)
then
echo -en "${red}Aria2 não está instalado${default}\n"
read -p "Deseja instalar? [S/n] " op
while [ ${op} != `[sSnN]` ]
do
read -p "Opção inválida, digite novamente [S/n]: " op
done
if [ ${op} == `[sS]` ]
then
echo -en "Instalando aria2c...\n"
sudo apt install aria2
if [ ${?} != 0]
then
echo -en "${red}Falha na instalação do aria2${default}\n"
exit
fi
else
echo -en "${red}Instalação abortada\n"
echo -en "${red}Requisitos não atendidos${default}\n"
exit
fi
fi



  


2. Re: Comparar de variável, com caractere [RESOLVIDO]

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 18/08/2019 - 21:22h

O problema aparentemente é só no while
No if consegui fazer da seguinte maneira:
	if [ ${op} == "s" ] || [ ${op} == "S" ]
then

Já no while não funcionou:
while [ ${op} != "s" ] || [ ${op} != "S" ] || [ ${op} != "n" ] || [ ${op} != "N" ] 


LMC


3. Re: Comparar de variável, com caractere [RESOLVIDO]

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 18/08/2019 - 22:32h

Resolvido
while [[ ${op} -ne "s" || ${op} -ne "S" || ${op} -ne "n" || ${op} -ne "N" ]]
...
if [[ ${op} == "s" || ${op} == "S" ]]

LMC






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts