Uma maneira de armazenar vários valores em uma variável seria uma matriz. Aqui está uma documentação sobre como usar variáveis de matriz no bash.
No entanto, parece-me que o que você quer é uma correspondência insensível a maiúsculas e minúsculas. Isso pode ser alcançado com grep -iq
. i
diz ao grep para casar com insensibilidade a maiúsculas e q
diz ao grep que ele deve retornar true ou false. Além disso, você pode usar o operador ou \|
na cláusula grep para corresponder várias palavras. Finalmente, você usa a notação de herestring < < < < para alimentar a variável diretamente para o grep. Isso simplifica consideravelmente o seu script:
#!/bin/bash
# Ask the user for one of four select words
echo "Type one of the following words:"
echo "even, odd, zero, negative"
read varword
if grep -iq "even\|odd\|zero\|negative" <<< "$varword"
then
echo "The approved word you have selected is $varword, great work! "
else
echo "The unapproved word you have selected is $varword, Please try again."
fi