Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个bash包含如下行的脚本:
bash
echo 2 * 3 > 5 is a valid inequality
我试图理解为什么在echo发送到屏幕后我没有得到输出。
echo
相反,没有任何内容输出到屏幕上,并且有一个新文件,其名称为5,包含2、我当前目录中所有文件的名称以及字符串3 is a valid inequality。
5
2
3 is a valid inequality
为什么会这样?有人可以解释吗?顺便说一句,我在 Linux 系统中运行它。
>正在重定向标准输出。
>
扩展为所有(*非隐藏)文件名
*
阅读高级 bash 脚本指南。
shell首先处理输入/输出重定向> 5,并将相关的文件句柄附加到它打开的文件(5在这种情况下)。
> 5
它还扩展*到当前目录中的匹配文件。所以你最终得到的是:
echo 2 <<ALL YOUR FILES>> is a valid inequality
将输出发送到您之前打开的文件的位置。
如果要输出文字字符串,则需要告诉 shell 不要进行正常解释:
echo '2 * 3 > 5 is a valid inequality'