IO重定向-10.17

IO重定向

概念

bash 标准输入输出

设备 设备名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

输出重定向

将内容输出到指定的重定向的内容中。

输入重定向

与输出重定向类似,将指定的内容重定向进指定的命令或操作中。

输出重定向用法

类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出到指定的文件或设备当中。
标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出到指定的文件或设备当中。
标准错误输出重定向 错误命令 2> 文件 以覆盖的方式,把命令的错误输出到指定的文件或设备当中。
标准错误输出重定向 错误命令 2>> 文件 以追加的方式,把命令的错误输出到指定的文件或设备当中。
  • > 或 1>:

    • 正确覆盖输出:将命令的标准输出(正确的输出结果)重定向到一个文件中,如果该文件已经存在,则会覆盖原有内容。
  • >> 或 1>>:

    • 正确追加输出:将命令的标准输出追加到指定的文件中,如果文件已经存在,则在文件末尾追加内容,不覆盖原有内容。

  • 2>:

    • 错误覆盖输出:将命令的标准错误输出(错误信息)重定向到一个文件中,如果该文件已经存在,则会覆盖原有内容。
  • 2>>:

    • 错误追加输出:将命令的标准错误输出追加到指定的文件中,如果文件已经存在,则在文件末尾追加错误内容,不覆盖原有内容。

  • 如果重定向的目标文件或I/O文件不存在,会自动创建该文件。

正确输出和错误输出同时保存:

符号 作用
命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 &> 文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 &>> 文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 >> 文件 1 2>> 文件 2 把正确的输出追加到文件1中,把错误的输出追加到文件2中。

Linux 系统中的 /dev/null 被称为“黑洞”,它会吞掉任何写入的数据。任何信息重定向到这个设备文件后,都会被永久丢弃,仿佛从未存在过。同时,从它读取数据时,则总是返回 EOF(文件结束符)。这种机制常用于丢弃不需要的输出,确保不影响程序运行。

与黑洞相反,Linux 中的 /dev/zero 可以看作“白洞”,它会源源不断地产生零字节(0 值),任何程序读取它时,都会获得一串连续的零字节。/dev/zero 常用于创建初始化为零的文件或内存区域,帮助生成空白数据块以便系统或应用程序使用。

输入重定向用法

基础用法

命令 < 文件

高级用法

实现标准输入重定向的符号
<< EOF EOF 可以生成文件

bc ---交互式计算器

  • 解释: bc 是一个用于数学计算的命令行工具,提供了精确的计算功能,支持任意精度的数字和数学运算。它可以在命令行中进行交互式计算,也可以从文件或标准输入读取表达式进行计算。

bc<<< +字符或字符串

不能是命令

  • 解释: 使用 bc 命令时,<<< 操作符可以用来将简单的数学表达式(如加法)直接传递给 bc。

seq

是单词sequence序列的缩写,其功能就是输出序列化的一串整数

  • 解释: seq 命令是 Linux 中用于生成数字序列的工具。可以通过指定起始值、终止值和可选的步长来输出连续的整数。

seq -s+ 加法

  • 解释: seq -s+ 使用 -s 选项来指定输出的分隔符为 +,这意味着输出的数字之间会用 + 符号连接。

seq -s- 减法

  • 解释: seq -s- 指定输出的分隔符为 -,用于将生成的数字用 - 连接起来。

set -C 和 set +C 是用于控制 Bash Shell 中的文件重定向行为的选项。

  • set -C:禁止I/O 覆盖重定向操作
  • set +C:开启I/O 覆盖重定向操作

echo

  • 格式:echo [option] 内容
  • 选项:
  • -n :取消输出内容后的换行符

  • \-e :允许后面输出内容进行转义,使用特殊字符
  • \n :强行换行

  • \t :插入制表位

posted @ 2024-12-04 14:15  阳光彩虹小能猫  阅读(30)  评论(0)    收藏  举报