command1 &
command2 &
wait
echo 'command1 and command2 have finished'
command3 &
command4 &
wait
echo 'command3 and command4 have finished'
A chamada para wait fará uma pausa no script até que todas as tarefas em segundo plano tenham terminado de executar.
Como alternativa (apenas "para sua informação"), dependendo se você deseja que o comando 1 e 2 sejam executados simultaneamente ou não (equivalentemente para o comando 3 e 4):
( command1; command2 ) &
echo 'command1 and command2 are running'
wait
echo 'command1 and command2 have finished'
No caso acima, command1 e command2 serão executados em segundo plano, mas não simultaneamente entre si.
Fazendo
command1 & command2
wait
é equivalente a
command1 &
command2
wait
... que funcionará, mas command2 não será executado em segundo plano e wait não será chamado até que command2 tenha terminado a execução.