一直以来对shell并不是很熟悉,并且在报错日志的时候习惯的写 command >log.log 2>&1
今天一个同事看了我的shell脚本,问我 2>&1是什么意思,还真把我给难住了。
经过google了一番,有了个大概的了解:
shell的标准输入默认的是键盘,也可以试文件或者管道 |
标准输出默认是终端同样也可以是文件或者管道
标准错误默认也是终端,可以试文件等
标准的输入、输出、和错误输出分别表示STDIN STDOUT STDERR 也可以用数字表示 0 1 2
有了以上的解释就明白了
make -j8 > make.LOG.$$ 2>&1
2> 代表的是标准输出的重定向
& 是等同于的意思
2>&1 意思是标准错误输出等同于标准输出
make -j8 > make.LOG.$$ 2>&1 也就是标准输出 和 标准错误输出 都输入到了make.LOG.3850文件中了。
shell 2>&1 解释
最新推荐文章于 2021-05-07 17:23:49 发布