我有一个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' 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!