我理解&
命令序列末尾的 & 号在后台执行它(在“并行”中),分号;
允许顺序(在“系列”中),括号允许命令分组。
假设我有一个bash
包含一些命令的文件:
#!/bin/bash
cmd1
cmd2
cmd3
cmd4
如果我想应用命令分组,例如,并行执行前两个,等待,然后并行执行接下来的两个,我应该把?:
#!/bin/bash
( \
cmd1 &
cmd2 &
); \
( \
cmd3 &
cmd4 &
)
或者所有内容都必须在一行中强制执行?
#!/bin/bash
(cmd1 & cmd2 &);(cmd3 & cmd4 &)
还是到处使用继续行字符?
#!/bin/bash
( \
cmd1 & \
cmd2 &); \
( \
cmd3 & \
cmd4 & )
只需使用
&
和wait
wait 将等待 backgroup 进程。
至于续行,只需使用
(
and)
,请注意这仅在您有重定向时才有用。请注意,没有
wait
, subshell 将立即返回。相比