${0##*/}と${0%/*}はどのように機能しますか?

${0##*/}と${0%/*}はどのように機能しますか?

シェルスクリプトの次の正規表現を見て、非常に混乱しました。

${0##*/}
${0%/*}

どのように動作しますか?

ベストアンサー1

これは正規表現ではなく、Bashパラメータ拡張の例です。これを変数または特殊パラメータの値に置き換えます。ウルウィッチウィキ良い説明

デフォルトでは、あなたの例では${0##*/}次のように解釈されます。

$0 変数と '/' パターンの場合、2 つのハッシュ値は次のことを意味します。スタート引数を使用すると、パターンまで含めて、最も長い(または欲張りな)一致を削除します。

$0たとえば、ファイル名はどこにありますか?$HOME/documents/doc.txtこれにより、引数は次のように拡張されます。doc.txt

同様に、${0%/*}パターン/は次のようになります。終わりパラメータ(%)は、最も短いまたは欲張りではない一致を削除します。上記の例で提供されています$HOME/documents

関連記事も参照してくださいバッシュハッカーウィキ

おすすめ記事