阅读背景:

shell学习笔记之九(重定向)

来源:互联网 

重定向
    概念:
        将默许的输入输出改成其他的输入输出
    文件标识符
        linux应用0-9指明特定过程相干的数据流,体系在启动一个过程的时候会为该过程打开三个文件:尺度输入(stdin),尺度输出(stdout),尺度毛病输出,分离应用文件标识符0,1,2来标识,如果要为过程打开其他的输入输出,则须要从整数3开端标识。默许情形下,尺度输入为键盘,尺度输出和毛病输出为显示器
    I/O重定向
        1、尺度输出笼罩重定向(>)
            ls -l > test.txt
            注意:如果指定的文件不存在,则命令会先创立文件
            上述命令相当于:ls -l 1>test.txt
            ls -l /usr/noExist 2> ls_noExist_err.txt
            毛病重定向输出
            如果命令的输出既有尺度输出,又有毛病尺度输出,则可以分离指定不同标识符的内容
            COMMAND 1> stdout.txt 2> stderr.txt 
        2、尺度输出追加重定向(>>)
            和>的用法一致,只是这个是追加,不会清空原文件
        3、标识输出重定向(>&)
            尺度输出重定向的作用是将一个标识的输出重定向到另外一个标识的输入。
            例:将尺度输出和尺度毛病输出同时重定向到一个文件
                COMMAND > test.txt 2>&1
                如果不关怀毛病输出
                    COMMAND > test.txt 2> /dev/null #/dev/null是一个特别装备,像一个黑洞
        4、尺度输入重定向 <
        5、管道(|)
        6、exec
            exec是shell的内建命令,
        7、Here Document
            用于在命令中按行输入文本,格局为<<delimiter,其中delimiter是一个用于标注的分割符,该分割符后所有的输入都被当作是输入的文本,直到涌现下一个分隔符。 
            这个的功效的涌现重要是由于Ctrl+D输入完成的信号在交互环境下是可以的,但是在脚本中却没法应用。
            例:
                #cat here.txt
                line1
                line2
                line3
                line4
                #现在想要在here.txt的第三行插入一个新行
                #!/bin/bash
                ed here.txt <<END
                3
                d
                i
                this is new line3
                .
                wq
                END
                #cat here.txt 
                line1
                line2
                this is new line3
                line4
                也就是说,我们把要在终端输入的命令全体写道一个文件里,这个文件相当于摹拟我们的键盘输入
                #对一串输入字符排序
                #!/bin/bash
                sort <<END
                sdt
                t
                dsaj
                dsg
                fdg
                we
                gh
                avf
                END
                这样便可以够在任甚么时候候任甚么时候光对这些字符串进行排序了。

空格:
    1、test 测试比拟时,操作符两侧要有空格  
    2、if [] ,if 和 [] 之间要有空格
    3、[ expression ]  expression两侧要有空格
    4、算数运算和赋值没有空格
    5、while与以后的expression有空格    如:while expression
重定向
    概念:
        将默许的输入输出改成其他的输入输出
    文件标识符
  




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: