我有一个bash
脚本,其中包含如下所示的行:
echo 2 * 3 > 5 is a valid inequality
我试图理解为什么我没有在echo
发送到屏幕后得到输出。
相反, nothing 输出到屏幕,并且有一个新文件,名称为5
,包含2
,当前所有文件的名称目录和字符串3 is a valid inequality
。
为什么会这样?谁能解释一下?顺便说一下,我在Linux系统中运行它。
答案 0 :(得分:3)
答案 1 :(得分:3)
shell首先处理输入/输出重定向,如> 5
,并将相关文件句柄附加到它打开的文件(在这种情况下为5
)。
它还将*
扩展为当前目录中的匹配文件。所以你最终得到的是:
echo 2 <<ALL YOUR FILES>> is a valid inequality
将输出发送到您之前打开的文件。
如果要输出文字字符串,则需要告诉shell不要进行正常解释:
echo '2 * 3 > 5 is a valid inequality'