if [[ $1 == *.(png|jpg) ]]
이것이 내가 시도한 것이지만 작동하지 않습니다. $1
뭔가를 할 수 있도록 이 파일 이름 접미사 중 하나와 일치하는지 확인해야 합니다 . 나는 무엇을 해야할지 모르겠습니다. 방금 들어갔습니다 bash
. 나는 이 모든 포럼과 다른 포럼을 검색했습니다. 조건문에 적합한 항목을 찾지 못했습니다 if
.
답변1
@(this|that)
일치 this
또는 that
Ksh 스타일 확장 글로브도 Bash에서 지원됩니다. Bash에서는 shopt -s extglob
. Bash 버전 4.1부터 이러한 기능은 기본적으로 내부적으로 활성화됩니다 [[ ]]
.
shopt -s extglob # needed in bash-4.0 or older
if [[ $1 == *.@(jpg|png) ]]; then
echo match
else
echo no match
fi
Zsh에서는 *.(jpg|png)
.
표준 sh에서는 를 사용할 수 있지만 case
전체 패턴을 반복해야 합니다.
case $1 in
*.png|*.jpg) echo match;;
*) echo no match;;
esac
바라보다: