2021年08月04日 更新

Here Document

どうも、クラゲジュニアです。

概要

Here Documentは、sh、csh、ksh、Bash、zshなどUnixシェルのシェルスクリプトや特定のスクリプト言語に存在する構文です。
Here Document内で記載した内容を標準入力に出力できます。

例えば、

echo Hello
echo Hello
echo Hello

といったものを

cat << EOF
Hello
Hello
Hello
EOF

に置き換えることが可能です。

使い方

Here Documentは、標準入力なのでcatで受け取ることが多いです。
Here Documentは、<<とEOFを表す任意の文字列で構成されます。
下の例では、ENDをEOFとして扱っています。
Here Documentを終了させたい時はEOFとして登録した文字列のみを入力する必要があります。
この時、スペースも含んではいけません。

cat << END
Hello
Hello
Hello
END

このままではあまり使いどころがあるように思えません・・・
なのでリダイレクト>を加えてファイルを作成したりします。

cat << END > push.sh
#! /bin/sh
git add .
git commit -m "test"
git push origin master
END

これで簡単なファイルであれば、エディタを開かなくても作成可能です。
一度改行すると元の行に移動することはできないので、注意が必要です。

以上です。