Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Bash/シェルスクリプトで文字列を連結する方法【実例付き】

Bashで文字列を連結(結合)する「正しい」方法を、実例とともにわかりやすく解説します。

シェルスクリプトで2つ以上の文字列をつなげる方法はいくつかあります。外部コマンドに文字列を渡し、その処理結果として結合された文字列を受け取ることも可能ですが、コマンドの副作用を利用した連結は非効率で無駄が多くなりがちです。そこで本記事では、最もシンプルで読みやすい方法に絞って紹介します。

別の文字列の中に文字列を挿入する

新しい文字列を作成するときに、既存の変数を埋め込むことができます。

#!/bin/bash
string1="Hello"
string2="${string1} there!"
echo "${string2}"

Linuxシェルスクリプトの「#!」とは?

1行目の#!/bin/bashは「シバン(shebang)」と呼ばれるもので、このスクリプトをどのインタプリタで実行するかを指定します。

埋め込める文字列の数に制限はありません。2つに限らず、必要なだけ含めることができます。

上記のechoコマンドでは、string2をそのまま出力するのではなく、ダブルクォートで囲んでいます。その理由は以下の通りです。

変数名は波括弧({})で囲んでいます。これは、変数名と前後の文字列を明確に区切るためです。例えば変数名の直後に英数字やアンダースコアが続く場合、波括弧がないとBashは変数名の範囲を正しく判別できず、意図しない結果になってしまいます。また、変数をダブルクォートで囲むことで、値にスペースや特殊文字が含まれていても安全に扱えます。

Bashスクリプトで文字列を結合・連結する

既存の2つの文字列をつなげて、新しい文字列を作成することもできます。

#!/bin/bash
string1='Hello'
string2='there!'
string3="${string1} ${string2}"
echo "${string3}"

実行結果は Hello there! となります。単語の間にスペースを入れたい場合は、上の例のようにダブルクォート内で半角スペースを挟みます。

文字列の追記(Append)

+= 演算子を使うと、既存の文字列の末尾に別の文字列を追加できます。

string1="Hello,"
string1+=" there!"
echo "${string1}"

新しい変数を作る必要がない、便利なショートカットです。ループ処理の中で文字列を少しずつ組み立てていくような場面でもよく使われます。

  1. Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル

    Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の

  2. 実用的な5つの例で学ぶBashスクリプト入門チュートリアル

    Unix SedやUnix Awkシリーズと同様に、本シリーズではBashスクリプティングに関する記事を複数回にわたって公開します。実用的なサンプルを交えながら、Bashスクリプティングのテクニックを幅広く解説していきます。 シェルとは、ユーザーが入力したコマンドを解釈して実行するプログラムです。コマンドはユーザーが直接入力するか、「シェルスクリプト」と呼ばれるファイルから読み込まれます。 ユーザーからの入力を直接読み取る場合、そのシェルは対話型(インタラクティブ)シェルと呼ばれます。 一方、ファイルからコマンドを読み込んで実行する場合は非対話型(ノンインタラクティブ)シェルと呼ばれます。この