输出重定向
输出重定向包括标准输出(STDOUT)重定向以及标准错误输出(STDERR)重定向。输出重定向通过特定的符号来实现:
- 标准输出重定向:
1>
、1>>
,可简写为>
、>>
- 标准错误输出重定向:
2>
、2>>
- 合并标准输出与标准错误输出:
2>&1
,可简写为&>
想对某个命令的标准输出重定向到某个文件,可以进行如何操作:
bash
#!/bin/bash
ls > log.txt
上面的例子中,使用 >
将 ls
命令的标准输出重定向到 tmp.txt
文件中。需要注意的是,>
重定向会覆盖原来的数据。
如果想追加数据,可以使用 >>
:
bash
#!/bin/bash
ls >> log.txt
标准错误错误输出重定向与标准输出重定向类似,但是使用的是 2>
以及 2>>
。2>
重定向会覆盖原来的数据,而 2>>
则是进行数据的追加。下面运行了一个不正确的命令 lls
,并且将标准错误输出重定向到 error_log.txt
文件中:
bash
#!/bin/bash
lls 2> error_log.txt
如果标准输出跟标准错误输出重定向到不同的文件,可以像下面那样进行操作:
bash
#!/bin/bash
./foo.sh > log.txt 2> error_log.txt
但如果像将标准输出与标准错误输出重定向到同一个文件,则可以使用 2>&1
或者 &>
来实现:
bash
#!/bin/bash
./foo.sh &> log.txt