zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【備忘】シェルの変数に乗せたパスワードがエスケープされてた

AUTH_PASSWORD="hoge$fuga&hoge"

echo $AUTH_PASSWORD
hoge&hoge

【原因】
下記記事より

bashでは下記の文字が特殊な意味を持ちます。
; & ( ) | ^ < > ? * [ ] $ ` ' " \ ! { } 改行 タブ スペース
これらの特殊な意味を打ち消して普通の文字として扱うことをエスケープといいます。

\   直後の1文字をエスケープ
''  シングルクォーテーションで囲まれた文字列は普通の文字
""  ダブルクォーテーションで囲まれた文字列は $ ` \ 以外の文字はエスケープする
    ""内の\は、\の直後に $ ` \ がある場合のみエスケープする

【参考】
anmino.hatenadiary.org