【问题标题】:How does cat interpret a file when it initially reads it?cat 最初读取文件时如何解释文件?
【发布时间】:2021-02-04 15:46:43
【问题描述】:

我一直在深入研究 cat 命令的用法(长篇大论),我想澄清理解。

当我们 cat 二进制文件时,假设 cat 二进制文件本身:cat /usr/bin/cat 我们看到终端会稍微混乱,因为cat 将这些解释为转义序列,这似乎取决于cat 解释字节的方式,但经过研究,我并没有确切地找到cat 是如何做到这一点的。

另一个例子是一个简单的 bash 脚本,我们可以在其中执行 cat bash_script.sh | bash 并将其通过管道传递到 bash 中以将其作为 bash 脚本执行,这对于 python 等也是如此。

总而言之,我想知道cat 在读取字节时如何解释它们,然后如何将它们打印到屏幕上。

欢迎任何帮助,在此先感谢:)

【问题讨论】:

    标签: bash cat gnu-coreutils


    【解决方案1】:

    cat 不解释字节。您的终端模拟器(例如gnome-terminal)正在解释字节。

    您可以在console_codes man page 中找到一些代码。它们支持的代码可能因终端而异。

    您也可以查看this blog post,了解如何使用代码实现彩色文本等各种效果。

    【讨论】:

    • 所以cat 只是将其读取到标准输出并让终端仿真器完成其余的工作?所以我们可以将它们解释为 bash 脚本的原因纯粹是我们在 bash 中管道?
    • 正确。如果您查看cat source,您会发现,除了用于处理选项的大量代码之外,它所做的只是将数据从一个管道移动到另一个管道。数据的效果取决于从目标管道读取的内容。
    • 是的,有道理,感谢您的澄清
    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 2023-04-10
    • 2016-04-15
    • 1970-01-01
    • 2015-02-11
    • 2018-03-23
    • 2015-03-11
    • 2020-04-09
    相关资源
    最近更新 更多