シェルスクリプトで##*はどういう意味ですか? [コピー]

シェルスクリプトで##*はどういう意味ですか? [コピー]

スクリプト:

text="//ABC/REC/TLC/SC-prod/1f9/20/00000000957481f9-08d035805a5c94bf"

echo ${text##*/}

ここで、上記の2行のスクリプトのうち2行目はどういう意味ですか?

ベストアンサー1

これはパラメータの置換および/または拡張。リンクから:

${var#Pattern}

$ varのフロントエンドと一致する$ Patternの最短部分を$ varから削除します。

${var##Pattern}

$ varのフロントエンドに一致する$ Patternの最長部分を$ varから削除します。

したがって、${text##*/}テキストから最後の項目より前のすべての項目を削除してください/。たとえば、ディレクトリのデフォルト名を取得すると便利です。

(また${var%Pattern}/${var%%Pattern}バックエンドに一致するパターンを削除します$var

おすすめ記事