HOWTO · Bash

Bash で複数行のエコー

このチュートリアルでは、Bash のマルチラインエコーについて説明します。

このページの内容

マルチライン出力を操作する必要がある場合があります。一般的なプログラミング言語では、\n を使用して新しい行を作成できます。このタスクは、Bash スクリプトでは少し複雑です。

別のプログラミング言語で行ったように、\n のようなものを直接使用することはできません。この記事では、Bash で複数行の出力を作成する方法について説明します。

また、トピックを簡単にするために、適切な説明を含むいくつかの例を使用します。ここで、2つの方法を見ていきます。

Bash でキーワード cat を使用してマルチライン出力を作成する

キーワード cat を使用して複数行の出力を作成することもできます。サンプルコードに従って、このメソッドで複数行の出力を作成できます。

cat <<'END'
This is the first line,
This is the second line
This is the third line
END

コードを見ると、コードの先頭に cat <<'END'という行が使用されていることがわかります。これにより、END まで出力が表示され続けます。

cat <<'END'という行のタグを選択できますが、最初に使用したのと同じタグで終了する必要があることを忘れないでください。したがって、一般的な構文は次のようになります。

cat <<'YOUR_TAG'
-
- Your output here
-
YOUR_TAG

サンプルコードを実行すると、以下の出力が得られます。

This is the first line,
This is the second line
This is the third line

Bash でキーワード print を使用してマルチライン出力を作成する

キーワード print を使用して、前の例と同じ出力を取得することもできます。以下の例に従って、複数行の出力を作成できます。

printf '%s\n' \
'This is the first line,' \
'This is the second line' \
'This is the third line'

したがって、この一般的な構文をこの目的に使用できます。

printf '%s\n' \
'YOUR FIRST LINE' \
'YOUR SECOND LINE' \
'YOUR THIRD LINE'

コードからわかるように、'%s\n'から始めました。これは、''が終了するたびに出力を新しい行に表示するためのものです。

さらに、新しい行を示すために記号\を使用する必要があります。すべてを引用符で囲む必要があることを忘れないでください。それ以外の場合は、1 行としてカウントされます。

サンプルコードを実行すると、以下の出力が得られます。

This is the first line,
This is the second line
This is the third line

この記事で使用されているすべてのコードは Bash で書かれています。Linux シェル環境でのみ機能します。