• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Shell中重定向的深入讲解

    标准输入、标准输出和标准错误

    一个程序的的输入可以来自于键盘,也可以来自于文件或者其他设备;同样的,一个程序也可以将输出显示在屏幕或者保存到文件中。这就涉及到标准输入、标准输出和标准错误。

    程序的输入是标准输入,默认是键盘,用户可以将其指定为文件或其他设备。

    程序的输出有两种,即标准输出和标准错误,其中标准输出是程序的正常输出、标准错误是程序的错误输出。二者默认都被指定为屏幕,用户可以将其指定为文件或其他设备。

    下面的程序从键盘读取输入,将结果显示在屏幕上,即标准输入、标准输出和标准错误都采用默认的设置:

    $ ls ~
    hello.txt homework name source.list.bk

    重定向

    用户可以对输入和输出进行重定向,即指定标准输入、标准输出和标准错误。

    标准输入使用进行指定,下面的命令将input文件作为sort命令的输入,即将sort命令的标准输入重定向为input文件:

    $ cat input
    zhao
    qian
    sun
    li
    zhou
    wu
    zheng
    wang
    $ sort  input
    li
    qian
    sun
    wang
    wu
    zhao
    zheng
    zhou

    本例中input文件作为sort命令的标准输入。

    使用>重定向标准输出:

    $ ls ~ > output
    $ cat output
    hello.txt
    homework
    input
    name
    output
    source.list.bk

    如上所示,ls ~的标准输出被重定向为output,因此其输出被写入output文件。

    需要注意的是,如果output不存在,将自动创建output文件;如果output存在,那么将清空output的内容,并写入新的内容。

    如果只是想在输出文件的已有内容的末尾追加,可以使用>>:

    $ date >> output
    $ cat output
    hello.txt
    homework
    input
    name
    output
    source.list.bk
    Sat Jun 30 18:18:53 CST 2018

    下面的命令将标准输入重定向为input,将标准输出重定向为output:

    $ sort  input > output # 覆盖output内容
    $ sort  input >> output # 在output末尾追加内容

    文件描述符

    每个输入源和输出地都有一个描述符,标准输入的描述符为0,标准输出的描述符为1,标准错误的描述符为2。

    使用0重定向标准输入,事实上,由于程序的默认重定向输入即为标准输入,所以下面的两条命令是等价的:

    $ sort  input
    $ sort 0 input

    同样的,程序的默认重定向输出为标准输出,所以下面的两条命令也是等价的:

    $ ls > output
    $ ls 1> output

    下面的命令将标准输入重定向为input文件,标准输出重定向为output文件(追加),将标准错误重定向为error文件:

    $ sort  input 1>> output 2> error

    组合标准输出和标准错误

    下面的命令将标准输出重定向为output文件,标准错误仍然显示在屏幕上:

    $ sort  input > output

    下面的命令将标准输出重定向为output文件,将标准错误重定向为error文件:

    $ sort  input > output 2> error

    下面的命令将标准输出重定向为output文件,使用2>1将标准错误重定向为标准输出:

    $ sort  input > output 2>1

    上面的例子中,标准输出和标准错误都会被重定向为output文件。

    注意,下面的命令将导致标准输出和标准错误的相互覆盖,因此不可使用:

    $ sort  input > output 2> output

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • shell脚本之判断输入参数是否为整数值的实例
    • linux shell中curl 发送post请求json格式问题的处理方法
    • shell脚本编写俄罗斯方块
    • shell实现俄罗斯方块脚本
    • Python设置在shell脚本中自动补全功能的方法
    • foreman ubuntu16 快速安装
    上一篇:Shell中的命令别名、命令历史和命令替换的方法
    下一篇:Linux curl命令详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Shell中重定向的深入讲解 Shell,中,重定向,的,深入,