Append lines to the end of a file with Bash
October 16, 2020 ‐ 2 min read
At some point it is gonna be useful to write to a file with Bash. You can do so in a Bash script or directly via the command-line. To do so you use the append operator(
#!/bin/bash # 1. Set the file to write to file='log.txt' # 2. Append text with '>>' echo "[INFO] caught a bass" >> $file
>> appends to a file or creates the file if it doesn't exist. Don't confuse
>, the latter completely overwrites a file erasing all current lines.
Append command output to a file
So technically this is what we did with
echo as well. Where the output of the
echo command was appended to a file. You can use the output of other commands as well in combination with the append operator. Like the
ls command for example.
#!/bin/bash # 1. Set the file to write to file='files_and_directories.txt' # 2. Append text with '>>' ls >> $file
Append multiple lines at once
Until so far we only appended single lines. But you might as well want to write multiple lines to a file at once. Tis a bit more cryptic however. But you can use
cat for this.
#!/bin/bash # 1. set the file to write to file='log.txt' # 2. Append multiple lines with '>>' and 'cat' cat << EOT >> $file [INFO] caught a bass [INFO] and released the bass EOT
The best way to learn more is to use Bash. A lot. Don't forget that Google is your friend.
In case you learn well from books I would recommend these.