输出重定向
输出重定向包括标准输出(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