关于shell重定向
时间:2014-04-29 00:11 来源:www.it.net.cn 作者:IT网
在linux的bash脚本编程中经常碰到:
1 > file_name 2 > &1;2>file_name 1>&2
或者
1 > /dev/null 2 > &1;2>/dev/null 1>&2
0: 标准输入 (STDIN)
1: 标准输出 (STDOUT)
2: 标准错误输出(STDERR)
举例说明:
//
[root@localhost tmp]# ls -lh movo.sql c.sql
ls: c.sql: 没有那个文件或目录
-rw-r--r-- 1 root root 328M 04-12 14:17 movo.sql
[root@localhost tmp]# ls -lh movo.sql c.sql 1>file_name 2>&1
[root@localhost tmp]# ls
file_name movo.sql
[root@localhost tmp]# cat file_name
ls: c.sql: 没有那个文件或目录
-rw-r--r-- 1 root root 328M 04-12 14:17 movo.sql
上面例子说明标准输出和标准错误输出 都定位到file_name.
同理也是一样。如下所示:
[root@localhost tmp]# ls -lh movo.sql c.sql 2>file_name 1>&2
[root@localhost tmp]# cat file_name
ls: c.sql: 没有那个文件或目录
-rw-r--r-- 1 root root 328M 04-12 14:17 movo.sql
结论:
1>&2 正确返回值传递给2输出通道 &2表示2输出通道
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道 (责任编辑:IT)
在linux的bash脚本编程中经常碰到: 1 > file_name 2 > &1;2>file_name 1>&2 或者 1 > /dev/null 2 > &1;2>/dev/null 1>&2 0: 标准输入 (STDIN) 1: 标准输出 (STDOUT) 2: 标准错误输出(STDERR) 举例说明: // [root@localhost tmp]# ls -lh movo.sql c.sql ls: c.sql: 没有那个文件或目录 -rw-r--r-- 1 root root 328M 04-12 14:17 movo.sql [root@localhost tmp]# ls -lh movo.sql c.sql 1>file_name 2>&1 [root@localhost tmp]# ls file_name movo.sql [root@localhost tmp]# cat file_name ls: c.sql: 没有那个文件或目录 -rw-r--r-- 1 root root 328M 04-12 14:17 movo.sql 上面例子说明标准输出和标准错误输出 都定位到file_name. 同理也是一样。如下所示: [root@localhost tmp]# ls -lh movo.sql c.sql 2>file_name 1>&2 [root@localhost tmp]# cat file_name ls: c.sql: 没有那个文件或目录 -rw-r--r-- 1 root root 328M 04-12 14:17 movo.sql 结论: 1>&2 正确返回值传递给2输出通道 &2表示2输出通道 2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道 (责任编辑:IT) |