Tôi đang cố gắng viết một tập lệnh trong bash để kiểm tra tính hợp lệ của đầu vào của người dùng.
Tôi muốn khớp đầu vào (biến nói x
) với danh sách các giá trị hợp lệ.
những gì tôi đã đưa ra tại thời điểm này là:
for item in $list
do
if [ "$x" == "$item" ]; then
echo "In the list"
exit
fi
done
Câu hỏi của tôi là nếu có một cách đơn giản hơn để làm điều này,
một cái gì đó giống như list.contains(x)
đối với hầu hết các ngôn ngữ lập trình.
Ngoài ra:
Danh sách nói là:
list="11 22 33"
mã của tôi sẽ chỉ lặp lại thông báo cho các giá trị đó vì list
được coi là một mảng chứ không phải là một chuỗi, tất cả các thao tác chuỗi sẽ xác thực 1
trong khi tôi muốn nó thất bại.
[[ $list =~ (^| )$x($| ) ]] && echo 'yes' || echo 'no'