Linux Shell(bash)
重定向技巧
linux
环境中支持输入输出重定向,用符号
<
和
>
来表示。
0
、
1
和
2
分别表示标准输入、标准输出和标准错误信息输出,
可以用来指定需要重定向的标准输入或输出,比如
2>a.txt
表示将错误信息输出到文件
a.txt
中。
同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用
2>&1
来实现。
Linux
下还有一个特殊的文件
/dev/null
,
它就像一个无底洞,
所有重定向到它的信息都会消失得无影无踪。
这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到
/dev/null
。
如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到
/dev/null
,
例如:
# ls 1>/dev/null 2>/dev/null
还有一种做法是将错误重定向到标准输出,然后再重定向到
/dev/null
,例如:
# ls >/dev/null 2>&1
注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到
/dev/null
,然后将标
准错误重定向到标准输出,
由于标准输出已经重定向到了
/dev/null
,
因此标准错误也会重定向到
/dev/null.
1.
标准输入的控制
语法:命令
<
文件将文件做为命令的输入。
例如:
mail -
s “mail test” wesongzhou@hotmail.com < file1
将文件
file1
当做信件的内容,主
题名称为
mail test
,送给收信人。
2.
标准输出的控制
语法:命令
>
文件将命令的执行结果送至指定的文件中。
例如
:
ls -l > list
将执行
“ls
-
l”
命令的结果写入文件
list
中。