シェルスクリプトの次の正規表現を見て、非常に混乱しました。
${0##*/}
${0%/*}
どのように動作しますか?
ベストアンサー1
これは正規表現ではなく、Bashパラメータ拡張の例です。これを変数または特殊パラメータの値に置き換えます。ウルウィッチウィキ良い説明。
デフォルトでは、あなたの例では${0##*/}
次のように解釈されます。
$0 変数と '/' パターンの場合、2 つのハッシュ値は次のことを意味します。スタート引数を使用すると、パターンまで含めて、最も長い(または欲張りな)一致を削除します。
$0
たとえば、ファイル名はどこにありますか?$HOME/documents/doc.txt
これにより、引数は次のように拡張されます。doc.txt
同様に、${0%/*}
パターン/
は次のようになります。終わりパラメータ(%
)は、最も短いまたは欲張りではない一致を削除します。上記の例で提供されています$HOME/documents
。
関連記事も参照してくださいバッシュハッカーウィキ。