2013-11-29 42 views
0

重定向不适用于这些表单。 例如>为什么重定向在没有分号的情况下工作正常?

~/workspace$ echo foo ; 1>test 
foo 
~/workspace$ ERRCOMMAND > test ; 2>&1 
ERRCOMMAND: command not found 

但它能以这些形式工作。

~/workspace$ echo foo 1>test 
~/workspace$ ERRCOMMAND > test 2>&1 

对我来说,第一个命令和下面的重定向似乎是非常离散的动作,所以可能有些东西我不知道。

有人可以告诉我吗?

非常感谢你!

回答

0

分号是“命令的结束”。你需要告诉命令在哪里重定向(即在命令结束之前重定向)。

[这是我的术语:简短的答案是真的那么简单,“你只需要”]

1

分号是命令分隔符。

只需要在一行中有多个命令时使用它。

在第一个示例中,重定向适用于不同的情况,在这种情况下也是空命令。那么没有理由让先前的命令受到其结束后会发生的事情的影响。

+0

确实;将分号看作换行符的同义词。 – tripleee

相关问题