ショコラ
Linuxでヒアドキュメントを使うには?
基本 catコマンドと組み合わせてキメマス。
終端IDには以下の文字列が慣習的に使われます。
私が良く使っているのはEOSとEOFです。
・END
・EOS・・・End of String
・EOF・・・End of File
・EOT・・・End of Text
・EOD・・・End of Data
もっさん先輩
①ヒアドキュメント(出力内容)をファイルに保存する方法
cat <<EOS > {ファイル名}
{出力内容}
EOS
出力内容に $変数 が含まれる場合、変数が展開されてファイルに保存されます。$変数 のままファイルに出力するには、EOS をシングルクォートで囲みます。
②ヒアドキュメント(出力内容)の変数を展開しないでファイルに保存する方法
cat <<'EOS' > {ファイル名}
{出力内容}
EOS
例
cat <<EOS > /etc/bashrc
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
stty erase '^h'
EOS
EOS をシングルクォートで囲って、$変数 を展開させないでファイルに保存します。
cat <<'EOS' > hello.php
<?php
while ($str = fgets(STDIN))
echo 'Hello ',$str;
EOS
因みにプログラムの実行結果は↓のようになります。
# php hello.php <<EOT
> mossan
> chocolat
> EOT
Hello mossan
Hello chocolat