シェルスクリプトで文字列を結合したい場合などのやり方をまとめます。
変数と文字列の結合や改行、スペース、空白などを含めた結合、また引数と文字列なども結合していきます。
windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。
シェルスクリプトで文字列を結合する
シェルスクリプトで文字列を結合する基本は以下の通りです。
#!/bin/bash
str1=string1
str2=string2
echo $str1$str2
そのまま文字列を並べるだけで結合可能です。
シェルスクリプトを「bash」コマンドで実行してみます。
実行結果は以下の通りです。
[root@localhost workspace]# bash combine_strings.sh
string1string2
シェルスクリプトで文字列を結合できています。
シェルスクリプトで変数に文字列を結合する
シェルスクリプトで変数に文字列を結合するやり方は以下のコードを見て下さい。
#!/bin/bash
str1=string1
echo ${str1}plus
変数を{}で囲います。その後に文字列を記入すれば結合出来ます。
[root@localhost workspace]# bash combine_strings.sh
string1plus
変数と文字列が結合できています。
文字列と文字列を改行して連結する
改行を含めて連結する場合は以下のコードを見て下さい。
#!/bin/bash
str1=string1
str2=string2
echo -e "$str1\n$str2"
- 改行コード「\n」を入れる
- エスケープシークエンスを解釈するechoのオプション-eをつける
- ダブルクォーテーションで囲む
これでシェルスクリプトを実行して見ます。
[root@localhost workspace]# bash combine_strings.sh
string1
string2
改行を含めて文字列を結合できています。
シェルスクリプトでスペースや空白を入れて文字列を結合する
空白やスペースを入れて文字列を結合するには以下のコードを見て下さい。
#!/bin/bash
str1=string1
str2=string2
echo $str1 $str2 #空白1つ
echo $str1 $str2 #空白2つだけど空白1つ分
echo "$str1 $str2" #空白2つ
空白を1つ入れる分にはそのまま文字列を記述すれば可能です。
空白を複数いれても実際は1つになります。
ダブルクォーテーションで囲む事で複数の空白も表現可能です。
では上のシェルスクリプトを実行して見ます。
[root@localhost workspace]# bash combine_strings.sh
string1 string2
string1 string2
string1 string2
想定通りの結果となりました。
シェルスクリプトで文字列と引数を結合する
文字列と引数を結合する場合は以下のコードを見て下さい。
#!/bin/bash
str1=string1
str2=string2
echo $str1$1
引数の1番目を参照したい場合は「$1」で可能です。
今まで通り「$1」を結合すれば可能になります。
では引数に「plus」を入れてシェルスクリプトを実行してみます。
[root@localhost workspace]# bash combine_strings.sh plus
string1plus
「string1」と「plus」の文字が結合できています。
シェルスクリプトで文字列を結合するのまとめ
シェルスクリプトで文字列を結合する基本は以下の通りです。
#!/bin/bash
str1=string1
str2=string2
echo $str1$str2
そのまま文字列を並べるだけで結合可能です。
その他にも様々な結合を試しました。
- 変数と文字列の結合
- 改行を含めた文字列の結合
- スペースや空白を入れた文字列の結合
- 引数と文字列の結合
そのシェルスクリプトのコードを以下にまとめています。
#!/bin/bash
str1=string1
str2=string2
#文字列の結合基礎
echo $str1$str2
#変数と文字列の結合
echo ${str1}plus
#改行を含めた文字列の結合
echo -e "$str1\n$str2"
#空白やスペースを含めた文字列の結合
echo $str1 $str2 #空白1つ
echo $str1 $str2 #空白2つだけど空白1つ分
echo "$str1 $str2" #空白2つ
#引数と文字列の結合
echo $str1$1
使用できそうな文字列の結合があれば、利用してみて下さい。