Próbuję napisać skrypt w bash, który sprawdza poprawność danych wejściowych użytkownika.
Chcę dopasować dane wejściowe (powiedzmy zmienną x
) do listy prawidłowych wartości.
w tej chwili wymyśliłem:
for item in $list
do
if [ "$x" == "$item" ]; then
echo "In the list"
exit
fi
done
Moje pytanie brzmi, czy istnieje prostszy sposób na zrobienie tego,
coś w rodzaju a list.contains(x)
dla większości języków programowania.
Dodatek:
Lista wypowiedzi to:
list="11 22 33"
mój kod powtórzy wiadomość tylko dla tych wartości, ponieważ list
jest traktowany jako tablica, a nie jako ciąg, wszystkie operacje na ciągach zostaną sprawdzone, 1
podczas gdy chciałbym, aby zakończyło się niepowodzeniem.
[[ $list =~ (^| )$x($| ) ]] && echo 'yes' || echo 'no'