- 追加された行はこの色です。
- 削除された行はこの色です。
* ヒアドキュメント [#kf713191]
** ヒアドキュメントをコマンドに渡す [#zb05921f]
#!/bin/sh
cat <<END
Hello,
World!
END
echoを何行も重ねるのは面倒くさい。例えば、
TMP=world
echo "hello"
echo "$TMP"
をヒアドキュメントを利用して書くと、以下。<<の後のENDからENDまでが対象のコマンドに対して標準入力と同じ扱いになる。
TMP=world
** ヒアドキュメントをコマンドに渡した後、エラー出力へリダイレクトする [#k0bcb337]
#!/bin/sh
cat <<END 1>&2
Hello,
World!
END
** ヒアドキュメントを変数に格納する [#wcae1136]
#!/bin/sh
mesg=$(cat <<"END"
Hello
World!
END
)
echo "$mesg"
** ヒアドキュメント内で変数展開する [#v71769d4]
#!/bin/sh
var="World!"
cat <<END
hello
$TMP
Hello,
$var
END
$TMPを展開したくない時は、ENDを'END'にする。
$varを展開したくない場合は「\$var」とする。
** ヒアドキュメント内で変数展開させない [#u4953006]
#!/bin/sh
var="World!"
cat <<'END'
Hello,
$var
END