I am trying to write a script in bash that check the validity of a user input.
I want to match the input (say variable x
) to a list of valid values.
If your list of values is to be hard-coded in the script, it's fairly simple to test using case
. Here's a short example, which you can adapt to your requirements:
for item in $list
do
case "$x" in
item1|item2)
echo "In the list"
;;
not_an_item)
echo "Error" >&2
exit 1
;;
esac
done
If the list is an array variable at runtime, one of the other answers is probably a better fit.