gpt4 book ai didi

linux - 为什么这个 unix shell 代码会这样工作?

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:16 24 4
gpt4 key购买 nike

我有一个bash脚本包含如下行:

echo 2 * 3 > 5 is a valid inequality

我试图理解为什么我没有得到 echo 之后的输出发送到屏幕。

相反,屏幕上没有输出任何内容,并且有一个名为 5 的新文件。 ,包含2 、当前目录中所有文件的名称以及字符串 3 is a valid inequality .

为什么会发生这种情况?有人可以解释一下吗?顺便说一句,我是在 Linux 系统中运行的。

最佳答案

shell 首先处理输入/输出重定向,例如 > 5 并将相关文件句柄附加到它打开的文件(在本例中为 5)。

它还将 * 扩展为当前目录中的匹配文件。所以你最终得到的是:

echo 2 <<ALL YOUR FILES>> is a valid inequality

输出将发送到您之前打开的文件。

如果你想输出文字字符串,你需要告诉 shell 不要进行正常的解释:

echo '2 * 3 > 5 is a valid inequality'

关于linux - 为什么这个 unix shell 代码会这样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17916174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com