bash|文字列の連結をパターン別に簡潔に解説します

Linuxを勉強したい人向け シェル/bash

こんにちは。

普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】
» 参考:【一生使える本です】bashの解説書 厳選3選【おすすめ】

今回は、bashについての解説記事です。

bashの文字列連結について調べる人

bashの文字列連結について調べる人
「bashで文字列連結をしたいのですが、+とか&とかを使って連結を試したもののうまくいきませんでした。正しい方法を知りたいです。コピペできるソースコード例も欲しいです。」

こんな悩みを解決します。

本記事の内容

この記事を書いている私はIT業界歴12年、年収1,000万円ちょっとの金融系エンジニアです。IRIXやSolarisなどのUnixやCygwin、mac、Linuxなど様々な環境でbashによるスクリプティングを行ってきました。

bashは極めて簡単なプログラミング言語ですが、空白の有無などで構文エラーとなること、javaなど一般的なプログラミング言語に慣れている方にとっては直感的ではない構文であることから、忘れてしまうことも多いかと思います。

あと、Qiitaとかに入門者が書いたメモの記事ですと、構文が間違っているケースがあり、少し複雑な文字列の処理ですとエラーとなってしまう書き方も散見されますので、正しい情報を発信したいと思い、記事にしました。

また本記事では、細かい構文に迷ったら、例からコピー&ペーストして使えることも目指しました。少しでもお役に立てますと幸いです。

1.文字列を連結する

bashで文字列を連結する

bashには文字列の連結演算子が無い

bashには文字列連結のための演算子はありません。連結したい文字列を並べて記述するだけです。

具体例

例:二つの文字列変数を連結し、その結果を出力する

#!/bin/bash
str1="文字列1"
str2="文字列2"
echo "$str1$str2"
 

実行結果は以下の通りです。

文字列1文字列2

とても簡単ですね。

2.変数と文字列を連結する

ちょっと厄介なのが、文字列と変数を連結する場合。どこまでが変数名で、どこまでが文字列かわからず、ちゃんと動きません。そのため、この場合は変数名を中括弧({})で囲います。

#!/bin/bash
str1="文字列1"
echo "${str1}文字列2"
 

実行結果は以下の通りです。

文字列1文字列2

3.連結時に空白を挿入する

bashで連結時に空白を挿入する

基本的に先ほどと同じですが、変数と変数の間に空白を入れるだけでOKです。

#!/bin/bash
str1="文字列1"
str2="文字列2"
echo "$str1 $str2"
 

実行結果は以下の通りです。

文字列1 文字列2

4.ループを用いて文字列を連結する

bashでループを用いて文字列を連結する

for文やwhile文を用いると、ループしながら文字列を連結することができます。以下に例を示します。

#!/bin/bash
for x in `cat os.txt`
do
 concat="$concat $x"
done
echo $concat
 
windows
mac
linux

実行結果は以下の通りです。

windows mac linux

5.改行を含む文字列を連結する

bashで改行を含む文字列を連結する

bashでは改行を含む文字列も同様に操作でき、連結することができます。

#!/bin/bash
str1='A GOAL
WITHOUT
'
str2='A PLAN
is JUST
A WISH'
echo "$str1$str2"
 

実行結果は以下の通りです。

A GOAL
WITHOUT
A PLAN
is JUST
A WISH

6.文字列と数字の連結

bashの文字列と数字の連結

bashでは数字も文字列のように扱うことができるため、文字列と数字を連結する際の型変換は不要です。数字と文字列の連結例を以下に示します。

bash$ echo $((10+10)) #bashで数字の計算をする構文
20
bash$ num=`echo $((10+10))` #計算結果を変数numに代入
bash$ str="minutes ago." #文字列を定義

bash$ echo "$num $str" #数字と文字列を連結する
20 minutes ago.  #実行結果

これとは逆に文字列の一部を切り出したい場合には以下の記事の解説を参考にしてください。

こちらの記事も参考になります

文字列連結以外の文字列操作

【bash】文字列連結以外の文字列操作

文字列連結以外の文字列操作なら、以下の記事を参考が参考になります。

文字列比較についての記事

今回は以上です。bashで文字列操作をしたい方向けに記事を書きました。参考になりましたら幸いです。

Blog TOP  シェルスクリプトを勉強したい人向け|bashの使い方 記事まとめ

bashの使い方 - もくじ

bashの使い方 - もくじ

シェルとは

 - シェルとは
 - シェルはOSと会話するための言語
 - シェルの種類(bash以外のシェル)
 - シェルスクリプトとは
 - シェルスクリプトの書き方

条件式

 - if else文
 - 文字列の比較
 - &&と||の使い方
 - case文

文字列操作

 - 文字列の連結
 - 文字列の一部を切り出す

繰り返し

 - for文
 - while文
 - while文でリストから1つ要素ずつ処理する

定数

 - 定数の定義

関数

 - 関数の定義

デバッグ

 - デバッグオプション(-x)

実行権限

 - 実行権限のないシェルスクリプトファイルを実行する

 - シェルスクリプトの書籍3選