这个问题在这里已经有了答案:
Two redirection operators in one command
(4 个回答)
7 天前关闭。
我正在开发一个与 shell 命令相关的程序。
我想这样做,当用户输入命令时,这不会显示任何输出。
我已尝试添加 > /dev/null
到命令,这对于像这样的命令很有效
$ echo "some text" | sudo tee some.txt > /dev/zero
$ cat some.txt
some text
但是如果用户输入带有附加(>>)的命令,则不会按预期添加新行$ echo "appending another line" >> some.txt > /dev/zero
$ cat some.txt
some text
我知道命令是从左到右执行的,有些东西让我无法理解
最佳答案
if the user enter a command with append (>>), the new line is not added as expected
重定向从左到右执行。
>>some.txt
将标准输出重定向到 some.txt
,然后 >/dev/null
覆盖该重定向并将标准输出重定向到 /dev/null
.然后执行命令,输出echo
命令重定向到 /dev/null
.
关于bash ->/dev/zero 取消之前的追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72665192/