输入输出、文件、管道、重定向和参数
💡
原文英文,约900词,阅读约需3分钟。
📝
内容提要
本文讨论了 Bash 中的输出重定向,包括标准输出和标准错误的处理,介绍了如何将输出重定向到文件、黑洞(/dev/null),以及使用管道和 tee 命令。强调了重定向顺序的重要性,并解释了文件描述符的概念,提供了一些特权重定向和并行化的示例。
🎯
关键要点
- 讨论了 Bash 中的输出重定向,包括标准输出和标准错误的处理。
- 介绍了如何将输出重定向到文件和黑洞(/dev/null)。
- 强调了重定向顺序的重要性,首先重定向标准输出,然后重定向标准错误。
- 解释了文件描述符的概念,0 为标准输入,1 为标准输出,2 为标准错误。
- 提供了使用管道和 tee 命令的示例,说明如何同时输出到终端和文件。
- 提到特权重定向的注意事项,使用 sudo 时需要注意权限问题。
- 讨论了并行化的示例,如何通过重定向提高程序的性能。
- 解释了 here document 和 here string 的用法,提供了相关示例。
- 提到使用双减号(--)来标记命令选项的结束,避免参数冲突。
❓
延伸问答
Bash 中如何处理标准输出和标准错误?
在 Bash 中,标准输出和标准错误可以通过重定向进行处理,通常先重定向标准输出,再重定向标准错误。
如何将输出重定向到文件和黑洞?
可以使用 '>' 将输出重定向到文件,使用 '/dev/null' 将输出重定向到黑洞,丢弃所有输出。
什么是文件描述符,它们的编号是什么?
文件描述符是指向文件或输入输出流的引用,0 为标准输入,1 为标准输出,2 为标准错误。
如何使用管道和 tee 命令同时输出到终端和文件?
可以使用管道将输出传递给 tee 命令,例如:'./example | tee log.txt',这样可以同时在终端显示和写入文件。
特权重定向时需要注意什么?
特权重定向时,使用 sudo 只会赋予命令的权限,而不会影响 shell 本身,因此需要使用 tee 命令来处理权限问题。
什么是 here document 和 here string,它们的用法是什么?
Here document 是一种输入重定向方式,可以将多行文本传递给命令;而 here string 是将单行文本传递给命令的简化形式。
➡️