シェルスクリプトで変数値(文字列)を連結する方法まとめ

シェル

Bashなどのシェルで変数に設定された文字列を連結する方法をまとめます。

旧来の方法

以下は、変数「foo」に設定された「Hoge」に、「 Fuga」を連結して設定しなおすシェルスクリプトです。

#!/bin/sh

foo="Hoge"
foo="$foo Fuga"
echo $foo

実行すると、以下のように出力されます。

Hoge Fuga

この例では、「$foo Fuga」内の「$foo」が「Hoge」に展開された結果、「Hoge Fuga」となって変数「foo」が設定しなおされています。

この「旧来の方法」は、shでも使えるので、環境を選びません。

Bashがサポートする新しい方法

Bashなら、より効率的な書き方で変数値に文字列を連結できます。次の例は、上の例と同じように動作します。

#!/bin/bash

foo="Hoge"
foo+=" Fuga"
echo $foo

実行すると、以下のように出力されます。

Hoge Fuga

Bashなら、他のプログラミング言語と同じように「+=」という演算子で文字列を連結できるというわけです。

この方法を使えば、変数名を書く回数を減らすことができるでしょう。

ただし、この書き方では「+=」は「文字列として連結」となるので、「足し算」にはならないことに注意が必要です。

#!/bin/bash

foo=2
bar=3
foo+=$bar
echo $foo

実行すると、以下のように出力されます。

23

このように「2」と「3」が連結され「23」となります。「5」にはなりません。

足し算を実行して「5」を出力するには、次のようなスクリプトにします。

#!/bin/bash

foo=2
bar=3
((foo+=bar))
echo $foo

このように、「(( ))」で囲うことで、「整数」として演算させることができます。

シェル
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました