为什么重定向在bash中没有分号的情况下运行良好?

时间:2013-11-29 05:25:53

标签: shell redirect

重定向dooe不能以这些形式工作。 e.g>

~/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

对我来说,第一个命令和跟随重定向似乎是非常离散的动作,因此可能会有一些我不知道的事情。

有人可以告诉我这个吗?

2 个答案:

答案 0 :(得分:2)

分号是命令分隔符。

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

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

答案 1 :(得分:0)

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

[这是我的术语:简短回答就像“你必须要”一样简单]