码迷,mamicode.com
首页 > 其他好文 > 详细

bash功能特性五 重定向和管道

时间:2015-05-20 09:56:25      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:bash   管道   重定向   

一、管道

    使用“|”符号来实现管道功能;管道可以实现在一行中处理使用管道符号连接的多个命令,后面的命令使用前面命令的输出结果做为处理对象。

技术分享

技术分享

二、数据流重定向

    数据输入和输出的类型:

        标准输入(stdin):代码为0,默认设备为键盘;

        标准输出(stdout):代码为1,默认设备为显示器;

        标准错误输出(stderr):代码为2,默认设备为显示器。

    重定向就是将数据不使用默认的设备进行输入或输出。

    1、输出重定向

        标准输出重定向:

            COMMAND > POSITION:覆盖输出

            COMMAND >> POSITION:追加输出

技术分享

技术分享

技术分享

        标准错误重定向:

            COMMAND 2> POSITION:覆盖输出

            COMMAND 2>> POSITION:追加输出

技术分享

        标准错误的追加重定向与标准输出的追加重定向相类似,此处不再进行演示。

        合并重定向:

            COMMAND &> POSITION

            COMMAND > POSITION 2> &1

技术分享

        分别重定向:

            COMMAND > POSITION 2> POSITION2

技术分享

    2、输入重定向

        COMMAND < FILE:以FILE中的内容来替代键盘输入;

        COMMAND << STRING:以STRING为输入结束符;

技术分享

技术分享

    3、重定向的应用

        输入重定向经常用于不能处理参数的命令,例如tr命令。

        tr命令格式:tr [OPTION]… SET1 [SET2] 

        作用:用于删除文字或进行文字的替换。

            OPTIONS:

                -d:删除指定的字符;

                -s:替换掉重复的字符;

技术分享技术分享    4、多道输出

        使用tee命令来实现多道输出,即将命令的结果在屏幕上显示的同时,也在指定的文件中保存;使用-a选项可以在文件中追加重定向的内容。

技术分享

    5、数据黑洞

       所有流向数据黑洞的数据都将被丢弃,使用/dev/null这个设备来实现此功能。

技术分享

    6、重定向的控制

        set -C  关闭输出重定向的覆盖功能

        set +C 打开输出重写向的覆盖功能

        >|:在关闭了输出重定向的覆盖功能时,依然执行覆盖操作

技术分享

bash功能特性五 重定向和管道

标签:bash   管道   重定向   

原文地址:http://petmaster.blog.51cto.com/5408825/1653027

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!