変数制御が早くて便利なので、出来るだけこっちを使うようにしようと思います。

${変数名#パターン} → 前方一致でのマッチ部分削除(最初にマッチしたもののみ)
${変数名##パターン} → 前方一致でのマッチ部分削除(マッチしたものすべて)
${変数名%パターン} → 後方一致でのマッチ部分削除(最初にマッチしたもののみ)
${変数名%%パターン} → 後方一致でのマッチ部分削除(マッチしたものすべて)
${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ)
${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて)