if [[ $1 == *.(png|jpg) ]]
これは私が試したことですが、うまくいきません。$1
何かを行うには、このファイル名のサフィックスの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
望むより: