三、重定向输入和输出

linux中用0代表标准输入,1代表标准正确输出,2代表标准错误输出。

一、输出重定向

输出重定向操作符大于号(>)和双大于号(>>)创建了一个输出文件(通过默认的umask设置),并将命令的输出重定向到该文件中。

1、覆盖式输出

bash shell使用大于号(>)来将命令的输出保存到指定的输出文件中。如果输出文件已经存在了,该重定向操作符会用新的文件数据覆盖已有文件。

语法:

command > outputfile

例如:

[root@localhost ~]# date > test
[root@localhost ~]# ls
1.sh             initial-setup-ks.cfg  test  模板  图片  下载  桌面
anaconda-ks.cfg  playground            公共  视频  文档  音乐
[root@localhost ~]# ls -l test
-rw-r--r--. 1 root root 43 3月  26 09:46 test

2、追加式输出

bash shell使用双大于号(>>)来将命令的输出保存到指定的输出文件中。如果输出文件已经存在了,该重定向操作符会将数据追加到已有文件的尾部。

[root@localhost ~]# date >> te
[root@localhost ~]# ls
1.sh             initial-setup-ks.cfg  te    模板  图片  下载  桌面
anaconda-ks.cfg  playground            公共  视频  文档  音乐
[root@localhost ~]# cat te
2021年 03月 26日 星期五 09:56:38 CST
[root@localhost ~]# ls >> te                          #追加
[root@localhost ~]# cat te
2021年 03月 26日 星期五 09:56:38 CST
1.sh
te
公共
模板
[root@localhost ~]# echo 12 > te                    #覆盖
[root@localhost ~]# cat te
12

二、输入重定向

输入重定向与输出重定向相反,是将输入文件的内容重定向到命令。(在使用输入重定向之前,输入文件必须已经存在,否则回提示错误)

Bash 支持的输出重定向符号
符号说明
command <file 将 file 文件中的内容作为 command 的输入。
command <<END 从标准输入(键盘)中读取数据,直到遇见分界符 END 才停止(分界符可以是任意的字符串,用户自己定义)。
command <file1 >file2 将 file1 作为 command 的输入,并将 command 的处理结果输出到 file2。

1、 输入重定向

 输入重定向符号是小于号(<),命令把输入文件的内容作为标准输入设备

语法:

command < inputfile

注:在命令行上,命令总是在左侧,而重定向符号“指向”数据流动 的方向。小于号说明数据正在从输入文件流向命令。

2、分界符输入重定向符号

分界符输入重定向符号是远小于号(<<),从标准输入(键盘)中读取数据,直到遇见分界符 END 才停止(分界符可以是任意的字符串,用户自己定义)。

语法:

command <<END

例如:

[root@localhost ~]# ls << q
> w                                     #键盘输入w,e,r,t
> e
> r
> t
> q                                    #键盘输入q分界符,退出键盘输入模式,执行(<<)左侧命令
1.sh             initial-setup-ks.cfg  te  公共  视频  文档  音乐
anaconda-ks.cfg  playground            w1  模板  图片  下载  桌面

3、输入输出重定向同时使用

将 infile 作为 command1 的输入,并将 command1 的处理结果输出到 outfile。

语法:

command1 < infile > outfile

例如:

[root@localhost ~]# cat < w1 > qw
[root@localhost ~]# cat qw
12qw
qwq
wq
[root@localhost ~]# wc < w1 > w
[root@localhost ~]# cat w
 3  3 12

将输入文件的内容作为命令1的输入,再将命令执行结果输出到指定的输出文件中(即先执行command1 < infile,得出的执行结果输出到outfile 中)

posted @ 2025-11-18 09:13  chao_xiong  阅读(14)  评论(0)    收藏  举报