linux /dev/null 2>&1,/dev/null 2>1 2>&1 >与>> 的意思
在linux中,0,1,2,/dev/null,>,>>的意思:标准输入stdin的文件描述符为0标准输出stdout的文件描述符为1标准错误stderr的文件描述符为2/dev/null为空设备,相当于垃圾桶输出重定向符号为>>为覆盖>>为追加2>1与2>&1的区别2>1把标准错误stderr重定向到文件1中2>&
在linux中,0,1,2,/dev/null,>,>>的意思:
标准输入stdin的文件描述符为0
标准输出stdout的文件描述符为1
标准错误stderr的文件描述符为2
/dev/null为空设备,相当于垃圾桶
输出重定向符号为>
>为覆盖
>>为追加
2>1与2>&1的区别
2>1把标准错误stderr重定向到文件1中
2>&1把标准错误stderr重定向到标准输出stdout
示例:
test.sh
#! /bin/sh
t
date
标准输出重定向到log,标准错误输出到终端上
$ ls
test.sh
$ ./test.sh > log
./test.sh: 3: ./test.sh: t: not found
$ ls
log test.sh
$ cat log
2017年 06月 28日 星期三 09:30:39 CST
(删除log文件)标准输出重定向到log,标准错误重定向到文件1
$ ls
log test.sh
$ rm log
$ ls
test.sh
$ ./test.sh > log 2>1
$ ls
1 log test.sh
$ cat log
2017年 06月 28日 星期三 09:34:32 CST
$ cat 1
./test.sh: 3: ./test.sh: t: not found
(删除log文件及1文件)标准输出重定向到log,标准错误重定向到标准输出
$ ls
1 log test.sh
$ rm 1 log
$ ls
test.sh
$ ./test.sh > log 2>&1
$ ls
log test.sh
$ cat log
./test.sh: 3: ./test.sh: t: not found
2017年 06月 28日 星期三 09:36:49 CST
(删除log文件)标准输出重定向到空设备
$ ls
log test.sh
$ rm log
$ ls
test.sh
$ ./test.sh >/dev/null
./test.sh: 3: ./test.sh: t: not found
$ ls
test.sh
标准错误重定向到空设备
$ ls
test.sh
$ ./test.sh 2>/dev/null
2017年 06月 29日 星期四 14:23:41 CST
$ ls
test.sh
标准输出和标准错误全定向到空设备
$ ls
test.sh
$ ./test.sh >/dev/null 2>&1
$ ls
test.sh
更多推荐
所有评论(0)