11.3 构建基本的shell脚本之三(重定向输入和输出)

一、输出重定向

>输出重定向
>>追加重定向

最基本的重定向将命令的输出发送到一个文件中。bash shell 用大于号( > )来完成这项功能。
command > outputfile
例如:

输出重定向

[root@CHENDAJIE sh.test]# date > a	#此时创建了一个新的文件a
[root@CHENDAJIE sh.test]# ls -l a	#通过默认的umask设置
-rw-r--r-- 1 root root 43 10月  8 21:21 a
[root@CHENDAJIE sh.test]# cat a	#查看该文件内容
2019年 10月 08日 星期二 21:21:28 CST

这个例子中:重定向操作符创建了一个文件a,并将date命令的输出重定向到该文件中。如果输出文件已经存在,则会覆盖该文件。

[root@CHENDAJIE sh.test]# who > a
[root@CHENDAJIE sh.test]# cat a
chendajie pts/0        2019-10-08 20:33 (172.17.2.69)
chendajie pts/1        2019-10-08 20:33 (172.17.2.69)

现在a文件的内容就是who命令的输出。
如果你不想覆盖文件原内容,而是想要在命令的输出追加到已有文件中,这种情况,可以使用双大于号( >> )来追加数据

追加重定向

[root@CHENDAJIE sh.test]# date >> a
[root@CHENDAJIE sh.test]# cat a
chendajie pts/0        2019-10-08 20:33 (172.17.2.69)
chendajie pts/1        2019-10-08 20:33 (172.17.2.69)
2019年 10月 08日 星期二 21:32:01 CST

输入重定向

<输入重定向
<<内联输入重定向

command < inputfile

输入重定向

例:

[root@CHENDAJIE sh.test]# wc < a
  3  16 151

wc命令可以对数据中的文本进行计数。默认情况下,它会输出如下3个值:
1、文本的行数
2、文本的词数
3、文本的字节数

内联输入重定向

内联输入重定向符号是远小于号( << )。除了这个符号,必须指定一个文本标记来划分输入数据的开始和结尾。任何字符串都可以作为文本标记,但是数据的开始和结尾文本标记必须一致。
command << marker
data
marker
在命令行上使用内联输入重定向时,shell会用PS2环境变量中定义的次提示符。
例如:

[root@CHENDAJIE sh.test]# wc << EOF
> test string 1
> test string 2
> test string 3
> EOF
 3  9 42

3:3行
9:9个单词
42:42个字节
次提示符会持续提示,以获取更多的输入数据,知道你输入了作为文本标记的那个字符串。wc命令会对内联输入重定向提供的数据进行:行、词、字节计数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值