美文网首页Shell 脚本成长笔记
Shell 输入和输出(一):标准输入

Shell 输入和输出(一):标准输入

作者: 赵者也 | 来源:发表于2017-05-17 09:02 被阅读19次

    几乎所有的命令都会产生到屏幕的输出和从键盘获取输入,而在 Linux 系统中可以将输出发送到指定的文件,或从文件中读取输入。每一个 Shell 命令都有它自己的输入和输出。在一个命令执行之前,它的输入和输出可以使用由 Shell 解释的特殊标记重定向。例如,将 data 命令的输出发送到文件而不是屏幕。改变输入或输出的默认路径就叫做重定向。

    在 Linux 中一切皆文件,所以你的硬件在 Linux 系统中同样地表示为文件。

    • 0 —— 标准输入 —— 键盘:从文件(默认是键盘)读取输入。
    • 1 —— 标准输出 —— 屏幕:发送数据到文件(默认是屏幕)。
    • 2 —— 标准错误 —— 屏幕:发送所有错误信息到一个文件(默认是屏幕)。

    上述 3 个数字是标准的 POSIX 字符,也称为文件描述符。每个 Linux 命令都会使用上述的流与用户或其他系统程序进行交互。

    在 Shell 运行任何命令之前,它先尝试打开文件进行读取。如果打开文件失败,Shell 将以一个错误退出并不运行命令。如果打开文件成功,Shell 使用打开的文件的文件描述符作为命令的标准输入文件描述符。

    标准输入具有如下特点:

    • 它是默认的输入方法,他被所有命令使用来读取输入
    • 它用数字 0 表示
    • 它也被称作 stdin
    • 默认的标准输入设备是键盘

    操作符 “<” 是输入重定向操作符,其语法如下所示:

    command < input_filename
    

    比如,可以按照如下方式运行 cat 命令,在屏幕上显示 /etc/inittab 的内容:

    cat < /etc/inittab
    
    标准输入的数据流

    利用标准输入,使用 sort 命令对一个文件的内容进行排序的方法如下所示:

    sort < file_list
    

    本文参考自 《Linux Shell命令行及脚本编程实例详解

    相关文章

      网友评论

        本文标题:Shell 输入和输出(一):标准输入

        本文链接:https://www.haomeiwen.com/subject/phkrxxtx.html