地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Bash】変数展開のメモ

100回ぐらいググってる気がするやつ。覚える気すらない模様。

$ man bash | grep "^\s*\${.*}$" | tr -d " "
${parameter}
${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word}
${parameter:offset}
${parameter:offset:length}
${!prefix*}
${!prefix@}
${!name[@]}
${!name[*]}
${#parameter}
${parameter#word}
${parameter##word}
${parameter%word}
${parameter%%word}
${parameter/pattern/string}
${parameter^pattern}
${parameter^^pattern}
${parameter,pattern}
${parameter,,pattern}

${parameter}: 参照

${parameter:-word}: デフォルト値(代入なし)

${parameter:=word}: デフォルト値(代入あり)

${parameter-word}: 変数未定義時デフォルト値(代入なし)

${parameter=word}: 変数未定義時デフォルト値(代入あり)

${parameter:?word}: 未定義時のエラー出力

${parameter:+word}: 定義時の代用(代入あり)

${parameter+word}: 定義時の代用(代入なし)

${parameter:offset}: 部分展開(文字数指定なし)

${parameter:offset:length}: 部分展開(文字数指定あり)

${!prefix*}: 変数名一覧

${!name[*]}: 連想配列キー名一覧

${#parameter}: 文字数カウント

${parameter#word}: 前方一致除去(最短一致)

${parameter##word}: 前方一致除去(最長一致)

${parameter%word}: 後方一致除去(最短一致)

${parameter%%word}: 後方一致除去(最長一致)

${parameter/pattern/string}: 文字列置換

${parameter//pattern/string}: 文字列置換