いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

ヒアドキュメントのメモ (bash, <<と<<-の違いとか)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。よく忘れるのでここにメモメモ。。。

ヒアドキュメント、たまに利用するのですが <<<<-の違いとかをよく忘れるのですよね。。。

ノーマルな使い方 (<<)

cat <<"END"
a
b
c
END

実行すると以下。

a
b
c

行頭のタブを除去するやり方 (<<-)

通常利用するのは << ですが、<<-を使うと行頭のタブを除去してくれます。

cat <<-"END"
        a
                b
                        c
END

実行すると以下。

a
b
c

<<を利用した場合は、タブもそのまま出力されます。

        a
                b
                        c

複数行のコメント

ヒアドキュメントを一番利用するのは個人的にはこのパターン。

: <<"COMMENT"
a
b
c
COMMENT

<<の後ろの文字列に対する引用符の有り無し

引用符が無しの場合、ヒアドキュメント内の変数の展開が行われます。

なので、下手すると意図しない動作をしてしまうことがあるため、基本的には引用符付きで書きましょう。

: <<"COMMENT"
$(touch a)
COMMENT

: <<COMMENT
$(touch b)
COMMENT

上を実行すると、bというファイルが生成されます。

参考情報


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。