Size: 1077
Comment:
|
← Revision 11 as of 2015-03-05 00:29:41 ⇥
Size: 1502
Comment: syntax hl
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
[[Anchor(faq14)]] | <<Anchor(faq14)>> |
Line 3: | Line 3: |
Redirecting the standard output of a single command is as easy as {{{ date > file |
Redirecting the standard output of a single command is as easy as: {{{#!highlight bash date > file |
Line 9: | Line 10: |
{{{ date 2> file |
{{{#!highlight bash date 2> file |
Line 14: | Line 15: |
{{{ date > file 2>&1 |
{{{#!highlight bash date > file 2>&1 |
Line 18: | Line 19: |
In a loop or other larger code structure: {{{ for i in $list; do echo "Now processing $i" # more stuff here... done > file 2>&1 |
or, a fancier way: {{{#!highlight bash # Bash only. Equivalent to date > file 2>&1 but non-portable. date &> file }}} Redirecting an entire loop: {{{#!highlight bash for i in "${list[@]}"; do echo "Now processing $i" # more stuff here... done > file 2>&1 |
Line 28: | Line 35: |
{{{ # redirect both standard output and standard error to "log.txt" exec > log.txt 2>&1 # all output including stderr now goes into "log.txt" |
{{{#!highlight bash # redirect both standard output and standard error to "log.txt" exec > log.txt 2>&1 # all output including stderr now goes into "log.txt" |
Line 34: | Line 41: |
Otherwise command grouping helps: | (See [[BashFAQ/106|FAQ 106]] for more complex script logging techniques.) |
Line 36: | Line 43: |
{{{ { date # some other command echo done } > messages.log 2>&1 |
Otherwise, command grouping helps: {{{#!highlight bash { date # some other commands echo done } > messages.log 2>&1 |
Line 45: | Line 54: |
[[http://wiki.bash-hackers.org/syntax/redirection|More discussion]] [[http://wiki.bash-hackers.org/howto/redirection_tutorial|In-depth: Illustrated Tutorial]] ---- CategoryShell |
How can I redirect the output of multiple commands at once?
Redirecting the standard output of a single command is as easy as:
1 date > file
To redirect standard error:
1 date 2> file
To redirect both:
1 date > file 2>&1
or, a fancier way:
Redirecting an entire loop:
However, this can become tedious if the output of many programs should be redirected. If all output of a script should go into a file (e.g. a log file), the exec command can be used:
(See FAQ 106 for more complex script logging techniques.)
Otherwise, command grouping helps:
In this example, the output of all commands within the curly braces is redirected to the file messages.log.
In-depth: Illustrated Tutorial