我试图在网上搜索,但没有得到明确答案。 linux中的符号&
是并行还是以线性方式执行两个作业?
例如:
command1 & command2
这里,command1和command2是并行执行还是command2在command1完成后执行?这到底发生了什么?
我问这个的原因是因为在我的command1和command2中我调用了具有不同参数的脚本,这些参数将一些数据写入同一文本文件。运行上述脚本后,我看到command2的输出被附加到command1。如果它们真正并行工作,这是预期的行为吗?
答案 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 & b
将a
程序放在后台,并立即开始执行b
命令。它并不是完全平行的,但它是两个完全独立的过程,恰好共享一个共同的输出:你的终端