Bu, düzenli ifadeleri kullanan salt Bash (> = sürüm 3) çözümüdür:
if [[ "$WORD" =~ ^(cat|dog|horse)$ ]]; then
echo "$WORD is in the list"
else
echo "$WORD is not in the list"
fi
Kelime listeniz uzunsa, bir dosyada saklayabilirsiniz (satır başına bir kelime) ve şunu yapın:
if [[ "$WORD" =~ $(echo ^\($(paste -sd'|' /your/file)\)$) ]]; then
echo "$WORD is in the list"
else
echo "$WORD is not in the list"
fi
Dosya yaklaşımı ile bir uyarı:
Dosyada boşluk varsa kırılır. Bu, şöyle bir şey tarafından giderilebilir:
sed 's/[[:blank:]]//g' /your/file | paste -sd '|' /dev/stdin
Teşekkür düzgün ile desen demirlemek için hatırlattığın için @terdon için ^
ve $
.
shopt -s nocasematch
arama harf duyarsız olmasını istiyorsanız yardımcı olabilir.