bash/zsh では パラメータ展開の #
と %
を使って Prefix または Suffix を削除することができます。
$ var='hogefuga'
# Prefix削除
$ echo "${var#hoge}"
fuga
# Suffix削除
$ echo "${var%fuga}"
hoge
シェルスクリプトではよく使う手法ですが、意外と覚えづらく、特にどちらが Prefix削除 でどちらが Suffix削除 なのか忘れてしまいがちです。(私だけ?
先日そんな悩みを Twitter で吐露したところ、3名の親切な方が覚え方を伝授してくれました。
その覚え方がなかなかユニークで覚えやすかったので紹介します。
覚え方
-
#
はコメントを表す記号なので Prefix(先頭)削除 -
#
を番号記号と考えて#30
のように使うので Prefix(先頭)削除 -
%
はパーセンテージを表す記号で、30%
(30パーセント) のように使うので Suffix(末尾)削除 -
キーボードの配列が [#][$][%] のように 変数展開を行う
$
を挟んで [prefix][value][suffix] という並びになっていることから考える。
おわり
どれも非常に面白い覚え方です。
みなさんはどのように覚えているでしょうか。
他にもこんな覚えた方があるよ、という方がいましたら是非教えてください。
(ちなみに私はどれも知りませんでした…)