我通常使用以下命令运行多个命令:
sleep 2 && sleep 3
或者
sleep 2 ; sleep 3
但是如果我想从一个命令行命令在后台同时运行它们怎么办?
sleep 2 & && sleep 3 &
不起作用。也没有替换&&为;
&&
;
有没有办法做到这一点?
您究竟希望它们如何运行?如果您希望它们在后台启动并按 顺序 运行,您可以执行以下操作:
{ sleep 2; sleep 3; } &
如果您只想sleep 3在sleep 2成功时运行,则:
sleep 3
sleep 2
sleep 2 && sleep 3 &
另一方面,如果您希望它们在后台 并行 运行,您可以这样做:
sleep 2 & sleep 3 &
这两种技术可以结合使用,例如:
{ sleep 2; echo first finished; } & { sleep 3; echo second finished; } &
Bash 就是 bash,通常有多种不同的技术来完成相同的任务,尽管有时它们之间存在细微的差异。