Copy & Paste Engineer

【bash】シェル内でヒアドキュメントを使用する

【bash】シェル内でヒアドキュメントを使用する

シェル内でヒアドキュメント使用する方法

ヒアドキュメント

最初に ヒアドキュメントは標準出力として扱われる ということです。

試しに以下のように echo してみます。

echo << EOS
1
ab
456
cdef
EOS

こうすると標準出力扱いのため改行のみ出力されます。 以下のようにすると文字列を出力します。

cat<<EOS
1
ab
456
cdef
EOS

変数に使用する

変数にヒアドキュメントを使用する場合 $() , ``\(アクセント), ’(シングルクォーテーション), “(ダブルクォーテーション)で囲うと使用できます。 どれも1 ab 456 cdef` と改行がスペースに変えられた状態で出力されます。

カッコ

STR=$(cat << EOS
1
ab
456
cdef
EOS
)

echo ${STR}

バッククォート

STR=`cat << EOS
1
ab
456
cdef
EOS
`

echo ${STR}

シングルクォート

STR='
1
ab
456
cdef
'

echo ${STR}

ダブルクォーテーション

STR="
1
ab
456
cdef
"

echo ${STR}

変数内の改行を有効にする

" を使用して変数を展開すると改行が有効になります。

STR="
1
ab
456
cdef
"

echo "${STR}"

こうすると変数が改行されて展開されます。

1
ab
456
cdef