Yrgl
Yrgl

Reputation: 653

How to append several lines of text in a file using a shell script

I want to write several lines (5 or more) to a file I'm going to create in script. I can do this by echo >> filename. But I would like to know what the best way to do this?

Upvotes: 39

Views: 52591

Answers (2)

Robert Hensing
Robert Hensing

Reputation: 7389

I usually use the so-called "here-document" Dennis suggested. An alternative is:

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

This should have comparable performance in bash, as (....) starts a subshell, but echo is 'inlined' - bash does not run /bin/echo, but does the echo by itself.

It might even be faster because it involves no exec().

This style is even more useful if you want to use output from another command somewhere in the text.

Upvotes: 5

Dennis Williamson
Dennis Williamson

Reputation: 360683

You can use a here document:

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

Upvotes: 102

Related Questions