filter="yes"
phonenumbers=(123 456 789 987 654 321)
echo "checking inbox now..."
myphonenumber=(7892)
if [[ "$filter" == "yes" ]]; then
case "${phonenumbers[@]}" in
*"$myphonenumber"*) echo "filter is on, phone number matches"
;;
!="$myphonenumber") echo "filter is on but the phone number doesn't match"
;;
esac
fi
if [[ "$filter" == "no" ]]; then
echo "filter off"
fi
Я пытаюсь запустить этот скрипт, но он не работает, как я должен показать часть filter is on but the phone number doesn't match
? Я все еще учился, я знаю, что могу это сделать с помощью if else
, но мне интересно, могу ли я сделать это с case
тоже.Как сделать «else» в команде bash case?
Я редактировал свой сценарий, чтобы улучшить свой отступ. Надеюсь, это поможет вам лучше понять, что делают наклейки на самом деле (чтобы сделать его даже дистанционно доступным для чтения). –
Это упоминается (хотя и не заметно) в руководстве [bash manual] (https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html): «Это распространенная идиома для использования» * 'как окончательный шаблон для определения случая по умолчанию, так как этот шаблон всегда будет соответствовать. " –