$ reg='(\.js)|(\.txt)|(\.html)$'
$ [[ 'flight_query.jsp' =~ $reg ]]
$ echo $?
0
*.jsp は、正規表現に基づいて一致する必要はありませんが、実際には一致しません。
助言がありますか?
有益なコメントが削除されました。コメントは、演算子の優先順位が正規表現が渡された理由であることを示唆していました。彼は修正として次の正規表現を提案しました。
$ reg='(\.js|\.txt|\.html)$'
$ if [[ 'flight_query.jsp' =~ $reg ]]; then echo 'matches'; else echo "doesn't match"; fi
doesn't match
$ if [[ 'flight_query.js' =~ $reg ]]; then echo 'matches'; else echo "doesn't match"; fi
matches
この正規表現も機能します(\.js$)|(\.txt$)|(\.html$)
。