#navi(../)
* ヒアドキュメントをファイルに出力する方法 [#ne3b6aea]
ヒアドキュメントを利用して以下のようなスクリプトを記述し実行すると端末に表示されます。~
ファイルに出力したい場合は、リダイレクトでファイルに出力すればいいのですが、1つのシェルスクリプトに複数のヒアドキュメントと複数のファイル出力をしたい場合の例を以下に記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#s1cb49bd]
ヒアドキュメントを資料した関連記事のリンク
-[[逆引きシェルスクリプト/ヒアドキュメント内の変数を展開しない方法]]
-[[逆引きシェルスクリプト/シェルスクリプトで複数行をまとめてコメントアウトする方法]]
-[[ペーストした文字列をファイルに出力する簡単な方法・cat>逆引きUNIXコマンド/ペーストした文字列をファイルに出力する簡単な方法・cat]]
* 端末に出力される一般的なヒアドキュメント例 [#m179480a]
#!/bin/bash
cat << EOT
HELLO WORLD
KONNICHIWA
NIHAO
EOT
* ヒアドキュメントをファイルに出力する方法 [#a4ae1b69]
以下のように記述することによりファイルに出力することができます。
#ref(sample-01.sh)
#!/bin/bash
cat << EOT >> out.txt
HELLO WORLD
KONNICHIWA
NIHAO
EOT
* 実行結果 [#g92ea3e6]
$ ls -l out.txt
ls: out.txt: そのようなファイルやディレクトリはありません
$ ./sample-01.sh
$ cat out.txt
HELLO WORLD
KONNICHIWA
NIHAO
$ ./sample-01.sh
$ cat out.txt
HELLO WORLD
KONNICHIWA
NIHAO
HELLO WORLD
KONNICHIWA
NIHAO
リダイレクト文字に>>を指定しているので、2回起動すると追記されているのが確認できます。~
リダイレクト文字に>を指定すれば、ファイルがない場合は新規作成され、存在する場合は前のデータは削除されヒアドキュメントの内容がファイルに出力されます。~
上記サンプルシェルスクリプトでは、EOT〜EOTまでの内容をout.txtに追記モードでout.txtファイルに出力しています。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)