Bash的输入、输出重定向和管道

标准输入:stdin 用数字0表示
标准输入一般是文件或者是键盘
标准输出:stdout 用数字1表示
标准输出一般是显示屏
标准错误输出:stderr 用数字2表示
标准错误输出一般是显示屏
输出重定向:
标准输出是显示屏
Bash的输入、输出重定向和管道
标准输出重定向到指定文件。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
再次进行标准输出重定向到指定文件
Bash的输入、输出重定向和管道
可以看到 stdout1 的内容始终没有变过,重定向符号 > 的作用就是覆盖原有文件的内容,将新的内容添加到原有文件中。
为了可以保留原有的原件内容,可以使用>>重定向符号,这个符号可以将新的输出内容追加到原有文件内容的后面。
Bash的输入、输出重定向和管道

错误重定向
标准错误的输出是显示屏
Bash的输入、输出重定向和管道
可以手动指定错误输出的目的是哪里。
2> 是错误输出 而且会覆盖掉目的文件之前的内容。
Bash的输入、输出重定向和管道
stdout1文件之前的内容就被覆盖了。
2>> 也是错误输出,但是它仅仅会将内容追加到指定的文件的最后,不覆盖之前的内容。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
可以在一个命令的后面跟两个重定向的动作,标准输出和标准错误输出。
Bash的输入、输出重定向和管道
2>&1 2> 表示错误输出 1表示标准输出,错误输出 输出到标准输出 这个命令的意思就是不论命令执行正确与否 输出的内容都输出到stdout1中。

这个命令还可以简化来写:
Bash的输入、输出重定向和管道
这个是错误的报错内容输出到了stdout1
Bash的输入、输出重定向和管道
这个是标准输出 输出到stdout1
这个方式下 也可以使用追加,而不用覆盖。
Bash的输入、输出重定向和管道
请注意下面命令的使用方式。
Bash的输入、输出重定向和管道
由于命令执行正确,所以stdout1有内容,stdout2没有内容。
重新执行一次上面的命令,执行命令估计改成错误执行。
Bash的输入、输出重定向和管道
stdout1是空的 stdout2是有内容的,这个说明,在这个命令执行过程中,不论命令执行正确与否,都会将stdout1和stdout2内容覆盖一遍,如果命令执行正确,stdout1被标准输出内容覆盖,stdout2被空内容覆盖,如果命令执行错误,stdout1被空内容覆盖,stdout2被错误输出内容覆盖。
输入重定向
一般来说,信息的输入都是靠键盘来完成的,不过有些时候需要将整片文章导入程序。
使用<符号可以使用文件作为输入源。
Bash的输入、输出重定向和管道
将/etc/issue文件内容中的小写字母变成大写字母。
Bash的输入、输出重定向和管道

<< 这个符号就不是覆盖功能了,这个符号的作用是指定输入结束符。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
这里>表示有内容要输出到文件123中,但是cat命令没有参数,直接输入cat系统会转入下一行让用户输入相关内容,然后立即显示并允许用户输入下一个内容。<<符号指定结束符,只要用户不输入指定符号,cat进程就一直运行,而且不会立即回显给用户。等用户输入了结束符,cat进程也不会显示用户输入的内容,而是把用户输入的内容输出到指定文件内。

set 命令中 -C(大写)的参数可以防止文件的内容被覆盖。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
为了恢复默认操作使用 set +C(大写)就可以了
Bash的输入、输出重定向和管道
如果想单次关闭阻止操作可以使用 >|的命令
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
管道
将前一个命令的输出内容作为第二个命令的输入流
Bash的输入、输出重定向和管道
一条命令就将/etc/issue的内容中小写字母变成大写字母并输出到屏幕上。


本文转自 yueyue207 51CTO博客,原文链接:http://blog.51cto.com/yueyue207/2048210


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值