#bash #shell
Вопрос:
В настоящее время у меня есть
if [[ $INPUT_FILE == *".aac" ]] || [[ $INPUT_FILE == *".aiff" ]] || [[ $INPUT_FILE == *".pcm" ]]
Я попробовал следующее, которое не работает. Это ничему не соответствует.
if [[ $INPUT_FILE == *".aac" || *".aiff" || *".pcm" ]]
Есть ли какой-либо способ учесть это выражение?
Комментарии:
1. @RenaudPacalet ну, я имею в виду, что это не работает. Я просто пытался дать представление о том, что я искал
2. @RenaudPacalet спасибо за рекомендацию! сделает это
Ответ №1:
С [[
помощью вы могли бы использовать регулярное выражение (в частности, расширенное регулярное выражение)
if [[ $input_file =~ .(aac|aiff|pcm)$ ]]; then
: something
fi
или extglob
if [[ $input_file = *.@(aac|aiff|pcm) ]]; then
: something
fi
Или вы можете использовать case
заявление
case $input_file in
*.aac | *.aiff | *.pcm )
# anything
;;
esac
Комментарии:
1. шаблоны «extglob» описаны в разделе 3.5.8.1 Сопоставление шаблонов