

Bashで文字列を結合する3つの書き方
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
Bashで文字列を結合する方法をいくつか確認した。
1. 変数を隣接させる
一番シンプルなのはこれ。
#!/bin/bash
string="Hello"echo "${string} world!"Hello world!が出る。ダブルクォートの中に${string}と書くだけで、後ろの world!とくっつく。
波括弧で囲んでいるのは境界を明示するため。囲まないと、
echo "$string_world"はstringではなくstring_worldという別の変数を探しにいく。存在しないので空文字になり、結合として成立しない。${string}_worldと書けばstringの値に_worldが続く。
2. +=で追記する
複数回に分けて結合したいときは+=が使える。
#!/bin/bash
string="Hello"string+=" world"string+="!"echo "$string"これもHello world!になる。ループの中で文字列を組み立てていくようなケースはこちらの方が読みやすい。
3. printf -vで組み立てる
フォーマットを指定しながら結合したい場合はprintf -vが使える。
#!/bin/bash
name="Hello"printf -v string "%s world!" "$name"echo "$string"-v stringで結果を変数stringに代入する。echoを経由せず直接変数に入るので、値の中に%のようなフォーマット文字が混ざっていても意図せず解釈されにくい。
ダブルクォートは必須
どの方法でも、展開した変数を使うときはダブルクォートで囲む。囲まないと単語分割やグロブ展開の対象になり、値にスペースやワイルドカードが含まれると挙動が変わる。
単純な結合なら1、ループで組み立てるなら2、フォーマットを制御したいなら3、という使い分けになりそう。