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