关于shell重定向,shell重定向


在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输出通道

相关内容

    暂无相关文章