今天发现一个脚本运行后狂暴输出在屏幕上,哇哦,惊蛰了!
询问了师姐,师姐用标准输出解决了,让我恍然大悟,之前学的显然忘记了。
Linux运行程序时,通常会从键盘获取输入,然后运行后将结果返回到终端上,这就是标准的输入输出。标准输入输出的数据流动方向,标准输入:数据流动方向从键盘到程序;标准输出:数据流动方向从程序到终端。
1.2 标准输入输出重定向的命令
类型 | 符号 | 作用 |
---|---|---|
标准输入重定向 | command<file | 讲file文件中内容作为command的输入 |
command<file1>file2 | 讲file1作为command的输入,并且将command的处理结果输出到file2 | |
command<<END | 从标准输入中读取数据,知道遇见分界符END才停止。(分界符可自己定义) | |
标准输出重定向 | command>file | 覆盖的方式输出到文件中 |
command>>file | 追加的方式输出到文件中 | |
标准错误输出重定向 | command 2>file | 覆盖的方式将错误输出到文件中 |
command 2>>file | 追加的方式将错误输出到文件中 | |
正确输出和错误信息同时保存 | command>file 2>&1 | 以覆盖的方式,把正确输出和错误信息同时保存到同一个文件中 |
command>>file 2>&1 | 以追加的方式,把正确输出和错误信息同时保存到同一个文件中 | |
command>file1 2>file2 | 以覆盖的方式,把正确输出输出到file1中,错误信息输出到file2 中 | |
command>>file1 2>>file2 | 以追加的方式,把正确输出输出到file1中,错误信息输出到file2 中 |
注:
(1) > 和 1> ,> 和 2> 的区别?
> 是 1> 的简写,习惯会将 1 省去,直接写成 > ; > 或者 1> 都表示将正确信息输出。
> 是将正确信息输出;2> 是将错误信息输出;1 和 2 对应了文件描述符。
(2)> 和 >> 的区别?
> 以覆盖的方式输出; >> 以追加的方式输出。
(3)在书写 2> 或者 2>> 时,数字和符号中间不能有空格。
(4) 2>&1
我觉得这个表格太好了呀,清晰而且显而易见,哈哈哈哈
给我码住!!!!
冲!!!