2013-11-09 93 views

回答

4

单个amperstand (&)用于背景。它使命令在后台运行。

另外,从man bash

如果一个命令是由操作者控制终止&,壳 中在子shell后台执行该命令。外壳不 不会等待命令完成,返回状态是0

所以,如果你写的是这样的:

find -name hello & 

这将使find命令被分叉和在后台运行

在您的情况下,单个amperstand &与任何方式都无关。

您可能正在寻找

command1 && command2 
5

也许你想了解&&&(这是用于执行背景命令)

此命令:

command1 | command2 

手段将command1的输出作为命令2的输入(stdin)输出

但是在这个命令:仅在command1成功

command1 && command2 

手段执行命令2

+0

问题是关于'&',而不是'&&',尽管OP可能意味着&&'。 – pfnuesel

+0

@pfnuesel:从OP的措辞几乎可以肯定,即使OP写了'&',但它实际上是要求'&&' – anubhava

+0

然后在你的答案中指出。 – pfnuesel

3

&不涉及以任何方式两个过程;它会在“后台”中启动一个进程,以便您正在运行的shell继续其工作,而不必等待进程终止,就像通常那样。你可能想到&&。命令行

command 1 && command 2 

执行第一command 1,并且如果它是成功的(具有状态码0退出)它执行command 2。退出状态是第一个命令的退出状态,如果不成功,则退出状态为2.

例如,以下命令行可用于从源代码安装Unix软件,但前提是成功配置,编译并运行所有测试。

./configure && make && make test && make install 
相关问题