是'&'在linux shell脚本中执行并行或线性作业?

时间:2015-08-17 16:31:20

标签: linux shell unix scripting parallel-processing

我试图在网上搜索,但没有得到明确答案。 linux中的符号&是并行还是以线性方式执行两个作业?

例如:

command1 & command2 

这里,command1和command2是并行执行还是command2在command1完成后执行?这到底发生了什么?

我问这个的原因是因为在我的command1和command2中我调用了具有不同参数的脚本,这些参数将一些数据写入同一文本文件。运行上述脚本后,我看到command2的输出被附加到command1。如果它们真正并行工作,这是预期的行为吗?

1 个答案:

答案 0 :(得分:1)

尝试使用此尺寸:

$ ls & pwd
[1] 7592     <---"ls" being put in the background as job #1, with pid 7592
/home/marc   <--- output of "pwd"

$ stuff
^---------------- shell waiting for next input
  ^^^^^---------- output of "ls" command

a & ba程序放在后台,并立即开始执行b命令。它并不是完全平行的,但它是两个完全独立的过程,恰好共享一个共同的输出:你的终端