web-dev-qa-db-ja.com

シェルスクリプトを使用してファイルに複数行のテキストを追加する方法

スクリプトで作成するファイルに数行(5行以上)書き込みたい。 echo >> filenameでこれを行うことができます。しかし、これを行う最善の方法を知りたいですか?

33
Yrgl

ヒアドキュメントを使用できます。

cat <<EOF >> outputfile
some lines
of text
EOF
83

私は通常、デニスが提案したいわゆる「ヒアドキュメント」を使用します。別の方法は次のとおりです。

(echo first line; echo second line) >> outputfile

(....)はサブシェルを開始するため、bashで同等のパフォーマンスが得られますが、エコーは「インライン化」されます。bashは/ bin/echoを実行せず、エコーを単独で実行します。

Exec()を含まないため、さらに高速になる可能性があります。

このスタイルは、テキスト内の別のコマンドからの出力を使用する場合にさらに便利です。

4
Robert Hensing