このコマンドがファイル拡張子を正常に検索するのはなぜですか?
file_ext=${filename##*.}
ベストアンサー1
これはPOSIX シェルコマンド言語:
${parameter##word}
最大プレフィックスパターンを削除します。パターンを生成するには、単語を拡張する必要があります。次に、パラメータ拡張によって、プレフィックスの最大部分が削除されたパターンと一致するパラメータを生成する必要があります。
この特別な場合は、(すべての項目と一致)*.
で終わる最大の部分文字列に展開され、最大の部分文字列が削除されます。そのため、ファイル拡張子だけが残ります。.
*
ファイル名に含まれる内容がないと何も削除されませんので、.
スクリプトで使用する際は注意してください。動作が予期したものと異なる場合があります。