linux有三种标准输出设备, 分别是 标准输出
, 标准错误输出
, 标准输入
标准输出
, 标准错误输出
对应的物理设备为屏幕
标准输入
对应的物理设备为键盘
可以通过命令 ls /dev/std*
查看
所以我们写程序时所有的打印语句都是输出到标准输出
的, 而非屏幕
linux提供上述三种标准设备的重定向操作
- 标准输出
-
>
或者1>
覆盖式标准输出重定向 -
>>
或者1>>
追加式标准输出重定向
-
- 标准错误输出
-
2>
覆盖式标准错误输出重定向 -
2>>
追加式标准错误输出重定向
-
- 标准输入
-
<
标准输入重定向 -
<<
标准输入重定向,指定具体的结束符
-
这里主要写一下标准输入,例如
cat > ~/out.txt < .bashrc
上述将指令将cat
的输出内容重定向到~/out.txt
,而cat
指令读取的内容通过标准输入重定向符从.bashrc
中读取, 如果无法理解的小伙伴可以这样试试
cat ~/.bashrc
cat < ~/.bashrc
cat < ~/.bashrc >> ~/out.txt
这里需要注意的是cat ~/.bashrc
指令是通过参数去寻找文件读取,而cat < ~/.bashrc
是读取的标准输入
在说<<
之前, 先看一下linux默认的标准输入
cat - > ~/out.txt
输入上述指令后,可以通过键盘输入任何内容,最后使用^d
就可以结束输入了
那么知道标准输入之后,此标准输入重定向符 <<
就是在标准输入的基础上增加了可以指定结束符
, 如
cat << EOF > ~/out.txt
输入上述指令后,与标准输入唯一个区别就是,既可以通过^d
结束输入,也可以通过EOF
+Enter
结束输入,但是需要输入的是结束符
必须在一行行首并且前后不能有任何多余字符
1638877126847