Bash
Zsh

bash/zsh のパラメータ展開(#, %)の覚え方いろいろ

More than 5 years have passed since last update.

bash/zsh では パラメータ展開の #%を使って Prefix または Suffix を削除することができます。

$ var='hogefuga'

# Prefix削除
$ echo "${var#hoge}"
fuga

# Suffix削除
$ echo "${var%fuga}"
hoge

シェルスクリプトではよく使う手法ですが、意外と覚えづらく、特にどちらが Prefix削除 でどちらが Suffix削除 なのか忘れてしまいがちです。(私だけ?

先日そんな悩みを Twitter で吐露したところ、3名の親切な方が覚え方を伝授してくれました。

その覚え方がなかなかユニークで覚えやすかったので紹介します。

覚え方

  1. # はコメントを表す記号なので Prefix(先頭)削除

  2. # を番号記号と考えて #30 のように使うので Prefix(先頭)削除

  3. % はパーセンテージを表す記号で、30% (30パーセント) のように使うので Suffix(末尾)削除

  4. キーボードの配列が [#][$][%] のように 変数展開を行う $ を挟んで [prefix][value][suffix] という並びになっていることから考える。

おわり

どれも非常に面白い覚え方です。
みなさんはどのように覚えているでしょうか。

他にもこんな覚えた方があるよ、という方がいましたら是非教えてください。
(ちなみに私はどれも知りませんでした…)