当我写的时候:
echo 2*3>5 is a valid inequality
在我的 bash 终端中,在我的目录中创建了一个名为 5
的新文件,其中包含:
2*3 is a valid inequality
我想知道这里到底发生了什么,为什么我会得到这个输出? 我相信很明显我是 Linux 新手! 谢谢
最佳答案
在 bash 中,重定向可以发生在行中的任何地方(但你不应该这样做!--- 见 the bash-hackers tutorial )。 Bash 采用 >5
作为重定向,创建输出文件 5
,然后处理其余参数。因此,echo 2*3 is a valid inequality
发生了,这给了你在输出文件中看到的输出 5
.
你可能想要的是
echo "2*3>5 is a valid inequality"
或
echo '2*3>5 is a valid inequality'
(带单引号),其中任何一个都会为您提供您在命令行上指定为打印输出的消息。不同的是,在""
内, 变量(如 $foo
)将被填充,但不在 ''
内.
编辑:bash man
page说
redirection operators may precede or appear anywhere within a simple command or may follow a command. Redirections are processed in the order they appear, from left to right.
关于linux - bash "echo"包括中间创建文件的 ">"- 请解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37622844/