学习写shell脚本的时候,经常会在行尾看到 【2>&1】 这个结束符,但是这个结束符是什么含义呢?
Command 的两种输出:标准输出 和 标准Error输出
以 echo 命令为例说明:
$echo "Hello"
Hello
Hello 就是 标准输出。
然后,以不存在的命令 aaa 为例:
$aaa "Hello"
-bash: aaa: command not found
输出了 aaa: command not found ,这就是标准Error输出
上面的 "标准输出" 和 "标准错误输出" 分别被赋予了数字 "1" 和 "2",这些数字被称为 文件描述符
Command > file | 将Command执行结果写入file里(覆盖写) |
Command >> file | 将Command标准输出写入file里(追加写) |
Command 2> file | 将标准错误输出写入file里(覆盖写) |
Command 2>> file | 将Error msg 写入 file 里(追加写) |
Command > file 2>&1 | 将标准输出和错误输出都写到 file 里(覆盖写) |
Command >> file 2>&1 | 将标准输出和错误输出都写到 file 里(追加写) |
Command &> file | 将标准输出和错误输出写到一个文件里 |
Command > /dev/null 2>&1 | 不输出 |