bash|文字列の連結をパターン別に簡潔に解説します
こんにちは。
普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】
» 参考:【一生使える本です】bashの解説書 厳選3選【おすすめ】
今回は、bashについての解説記事です。
bashの文字列連結について調べる人
「bashで文字列連結をしたいのですが、+
とか&
とかを使って連結を試したもののうまくいきませんでした。正しい方法を知りたいです。コピペできるソースコード例も欲しいです。」
こんな悩みを解決します。
本記事の内容
この記事を書いている私はIT業界歴12年、年収1,000万円ちょっとの金融系エンジニアです。IRIXやSolarisなどのUnixやCygwin、mac、Linuxなど様々な環境でbashによるスクリプティングを行ってきました。
bashは極めて簡単なプログラミング言語ですが、空白の有無などで構文エラーとなること、javaなど一般的なプログラミング言語に慣れている方にとっては直感的ではない構文であることから、忘れてしまうことも多いかと思います。
あと、Qiitaとかに入門者が書いたメモの記事ですと、構文が間違っているケースがあり、少し複雑な文字列の処理ですとエラーとなってしまう書き方も散見されますので、正しい情報を発信したいと思い、記事にしました。
また本記事では、細かい構文に迷ったら、例からコピー&ペーストして使えることも目指しました。少しでもお役に立てますと幸いです。
1.文字列を連結する
bashには文字列の連結演算子が無い
bashには文字列連結のための演算子はありません。連結したい文字列を並べて記述するだけです。
具体例
例:二つの文字列変数を連結し、その結果を出力する
#!/bin/bash str1="文字列1" str2="文字列2" echo "$str1$str2"
実行結果は以下の通りです。
文字列1文字列2
とても簡単ですね。
2.変数と文字列を連結する
ちょっと厄介なのが、文字列と変数を連結する場合。どこまでが変数名で、どこまでが文字列かわからず、ちゃんと動きません。そのため、この場合は変数名を中括弧({}
)で囲います。
#!/bin/bash str1="文字列1" echo "${str1}文字列2"
実行結果は以下の通りです。
文字列1文字列2
3.連結時に空白を挿入する
基本的に先ほどと同じですが、変数と変数の間に空白を入れるだけでOKです。
#!/bin/bash str1="文字列1" str2="文字列2" echo "$str1 $str2"
実行結果は以下の通りです。
文字列1 文字列2
4.ループを用いて文字列を連結する
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では改行を含む文字列も同様に操作でき、連結することができます。
#!/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$ echo $((10+10)) #bashで数字の計算をする構文 20 bash$ num=`echo $((10+10))` #計算結果を変数numに代入 bash$ str="minutes ago." #文字列を定義 bash$ echo "$num $str" #数字と文字列を連結する 20 minutes ago. #実行結果
これとは逆に文字列の一部を切り出したい場合には以下の記事の解説を参考にしてください。
【bash】文字列の一部を切り出す最も簡単な解説
bashで文字列の一部を切り出す方法を解説します。
・構文
・①先頭から部分文字列を切り出す方法
・②途中から部分文字列を切り出す方法
・③末尾から部分文字列を切り出す方法
文字列連結以外の文字列操作
文字列連結以外の文字列操作なら、以下の記事を参考が参考になります。
【bash】文字列の比較について解説します
1行で文字列同士の比較をする方法
if else文を使って、文字列比較する方法
文字列比較に使う変数はダブルクォートで囲む
今回は以上です。bashで文字列操作をしたい方向けに記事を書きました。参考になりましたら幸いです。
Blog TOP シェルスクリプトを勉強したい人向け|bashの使い方 記事まとめ
bashの使い方 - もくじ
シェルとは
- シェルとは
- シェルはOSと会話するための言語
- シェルの種類(bash以外のシェル)
- シェルスクリプトとは
- シェルスクリプトの書き方条件式
- if else文
- 文字列の比較
- &&と||の使い方
- case文文字列操作
- 文字列の連結
- 文字列の一部を切り出す繰り返し
- for文
- while文
- while文でリストから1つ要素ずつ処理する定数
- 定数の定義
関数
- 関数の定義
デバッグ
実行権限
本
「今の会社を辞めて転職します。エンジニア職に強みのあるおすすめの転職サイト・転職エージェントを教えて欲しい。また好条件で転職するにはどうすれば良いですか?」こんな悩みに答えます。 ITエンジニアに強いおすすめの転職サイト・転職エージェント3選 転職成功には強くてニューゲームが条件。どうやって実現する?