• linux数据流重定向


    通常情况下,我们由键盘输入数据,计算机通过屏幕显示输出,然而有时我们并不想通过键盘输入和屏幕输出,为了解决这个问题,就引入数据流重定向的概念。

    1 标准输入:代码为0,使用<或<<

    2 标准输出:代码为1 ,使用>或>>

    3 标准错误输出:代码为2,使用2>或2>>(注解:为与标准输出>和>>区分,所以需要加入2)

    这里以ls举例,相信大家对ls命令非常熟悉,用来显示目录的内容,现在假定当前目录为用户主文件夹,在终端输入以下指令(输入:),会在屏幕显示(输出)

    输入:ls
    输出:bin opt 模板 图片 下载 桌面 公共的 视频  文档  音乐

    现在我们想让输出的内容输出到test.txt中,而不是屏幕上,则需要标准输出>或>>

    ls > ./test.txt
    

    可以显示test.txt的数据

    cat test.txt
    

    我们会发现ls的输出已经输出到test.txt中。

    这次我们使用>>来重复一次命令

    ls >> ./test.txt
    

    再次显示test.txt的内容

    cat test.txt
    

    我们会发现两次执行的结果都在test.txt中。

    如果我们再使用>的指令执行一遍,我们会发现之前的执行结果全部被覆盖,这就是>> 和 >的区别

    > 表示覆盖

    >>表示追加

    这次,我们使用2>把执行的结果输出到test.txt中,输入

    ls 2>test.txt
    

    再次显示test.txt的内容,我们会发现,此次文件中什么内容都没有,这是因为,2>表示把错误的信息输出到文件中,我们的指令没有错误,所以导致了test.txt中的内容为空。

    假设我们的目录中没有test1.txt,我们知道以下代码会产生错误。

    ls test1.txt
    

    如果我们此时通过2>来输出,那么文件中应该会信息,输入

    ls test1.txt 2>test.txt
    

    此时我们再显示test.txt的内容,我们会发现test.txt会显示

    ls: 无法访问test1.txt: 没有那个文件或目录

    由此我们知道了标准输出和标准错误输出的区别:

    标准输出是输出正确的信息

    标准错误输出是用来输出错误的信息

    如果我们想把正确和错误信息输出到同一个文件中,需要采用以下命令

    指令 >   文件 2&>1   或 
    指令 &>  文件
    

    标准输入就是把由键盘的输入变为文件的输入

    <表示文件来源、

    <<表示结束输入

    有时我们还想在一个命令行中执行多个命令,则需要用分号(;)把命令隔开,如

    ls test.txt; ls bin;
    

    则屏幕分别输出ls test.txt和ls bin的输出结果

    有时我们需要前一个命令执行成功才可执行下一个命令,如

    1创建一个文件夹

    2 在文件夹中创建一个文件

    如果文件夹创建不成功,那么我们不会继续执行创建文件的指令,此时就需要&&

    指令1 && 指令2
    

    这个指令表示指令1执行成功,才会执行指令2

    有时我们也会需要指令1执行不成功去执行指令2 的情况,此时需要||

    指令1 || 指令2
    

    表示指令1执行不成功,则执行指令2

      

     

  • 相关阅读:
    python3 之 内置函数range() Be
    从零开始学习Sencha Touch MVC应用之十四
    从零开始学习Sencha Touch MVC应用之十六
    从零开始学习Sencha Touch MVC应用之十五
    从零开始学习Sencha Touch MVC应用之十三
    从零开始学习Sencha Touch MVC应用之十七
    从零开始学习Sencha Touch MVC应用之十七
    从零开始学习Sencha Touch MVC应用之十四
    从零开始学习Sencha Touch MVC应用之十三
    从零开始学习Sencha Touch MVC应用之十五
  • 原文地址:https://www.cnblogs.com/qixianyu/p/6574535.html
Copyright © 2020-2023  润新知