【Shell】ヒアドキュメント ~ 複数行の テキストをファイル出力する ~

■ はじめに

シェルの可読性をあげるために
よく使う「ヒアドキュメント」について、メモっておく。

目次

【1】ヒアドキュメント
【2】構文
【3】サンプル
【4】おまけ:複数行の文字列を変数に格納

 【1】ヒアドキュメント

 * 複数行の文字列を簡潔に記述するための機能

 【2】構文

cat > 【出力ファイル】 <<【任意文字】
【内容1】
【・・・】
【任意文字】

【3】サンプル

SayHello.sh

#!/bin/bash

cat > HelloWorld.txt <<EOF
Hello, $1
How are you?
EOF

出力例

SayHello.sh Mike

出力結果:HelloWorld.txt

Hello, Mike
How are you?

【4】おまけ:複数行の文字列を変数に格納

 ヒアドキュメントの応用として、
複数行の文字列を変数に格納する方法について、とりあげる。

サンプル

#!/bin/bash

sql=`cat << EOS
  SELECT
    user_id,
    user_name,
    created_at
  FROM
    users
  WHERE
    user_name = 'Sam'
  ;
EOS
`

echo "sql=${sql}"

参考文献

http://qiita.com/take4s5i/items/e207cee4fb04385a9952

関連記事

ファイルへの書き出し
https://dk521123.hatenablog.com/entry/2021/08/14/000000
リダイレクト・パイプライン
https://dk521123.hatenablog.com/entry/2021/09/13/000000