Entendo que o e comercial &
no final de uma sequência de comandos o executa em segundo plano (em "paralelo"), o ponto-e-vírgula ;
permite sequencial (em "série") e o parêntese permite o agrupamento de comandos .
Suponha que eu tenha um bash
arquivo com alguns comandos:
#!/bin/bash
cmd1
cmd2
cmd3
cmd4
Se eu quiser aplicar o agrupamento de comandos, por exemplo, execute os dois primeiros em paralelo, aguarde e execute os próximos dois em paralelo, devo colocar?:
#!/bin/bash
( \
cmd1 &
cmd2 &
); \
( \
cmd3 &
cmd4 &
)
ou tudo deve ser obrigatório em uma única linha?
#!/bin/bash
(cmd1 & cmd2 &);(cmd3 & cmd4 &)
ou usando o caractere de linha contínua em todos os lugares?
#!/bin/bash
( \
cmd1 & \
cmd2 &); \
( \
cmd3 & \
cmd4 & )
simplesmente use
&
ewait
wait irá esperar pelo processo backgroup.
quanto à continuação de linha, basta usar
(
e)
, observe que isso é útil apenas se você tiver redirecionamento.observe que sem
wait
, o subshell retornará imediatamente.comparado com