Bash で文字列を連結する方法

Suraj Joshi 2023年1月30日
  1. 文字列の連結文字列変数を次々に配置する
  2. 演算子 += を用いた文字列連結
Bash で文字列を連結する方法

文字列連結はプログラミングで最も広く使われている操作の一つで、2つ以上の文字列を別の文字列の最後に配置して連結することを意味します。Bash で文字列を連結するには、文字列変数を次から次へと書いたり、+= 演算子を使って連結したりします。

文字列の連結文字列変数を次々に配置する

文字列変数を連続して配置することで、文字列を連結することができます。

STR1="Delft"
STR2="Stack"

STR3="$STR1$STR2"

echo "$STR3"

出力:

DelftStack

上の例では、STR1STR3 を連結し、連結した文字列を STR3 に代入しています。ダブルクォート (" ") は、分割やグロブの問題を防ぐために使われています。

出力を表示します。には echo コマンドを用います。

1つ以上の変数をリテラル文字列で連結する

STR1="Delft"

STR3="${STR1}-Stack"

echo "$STR3"

出力:

Delft-Stack

ここでは、文字列変数と文字列リテラルを分離するために {} を用います。

これは文字列変数 STR1 と文字列リテラル -Stack を連結します。

2つ以上の文字列を連結する

文字列変数とリテラルを連続して配置することで、2つ以上の文字列変数を連結することができます。

STR1="Delft"
STR2="-Stack"
STR3="Check them out!!"

STR4="${STR1}${STR2} has great programming articles.${STR3}"

echo "$STR4"

出力:

Delft-Stack has great programming articles.Check them out!!

数値リテラルと文字列リテラルの連結

変数は連結時に type に基づいて Bash で区別されることはありません。これらはコンテキストに応じて integer または string として解釈されます。

STR1="FIVE-"
STR2=5

STR4="$STR1$STR2"

echo "$STR4"

出力:

FIVE-5

文字列変数 FIVE-5 を連結します。

演算子 += を用いた文字列連結

また、Bash+= 演算子を用いて文字列を連結することもできます。単純に a+=b とすると、a=a+b と理解することができます。

STR1="Delft"
STR2="-Stack"

STR1+=$STR2

echo "$STR1"

出力:

Delft-Stack

ここでは、STR1 の最後に STR2 が追加され、その結果が STR1 変数に格納されます。

複数の値を追加するには、単純な for ループを使用することができます。

NUMS=""
for NUM in 'One' 'Two' 'Three' 'Four'; do
  NUMS+="${NUM} "
done

echo "$NUMS"

出力:

One Two Three Four 
著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Bash String