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

  1. 文字列の連結文字列変数を次々に配置する
  2. 演算子 += を用いた文字列連結

文字列連結はプログラミングで最も広く使われている操作の一つで、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 
comments powered by Disqus