Debe agregar algunos paréntesis en su última versión --
(sleep 2 &) && (sleep 3 &)
o esto también funciona --
(sleep 2 &) ; (sleep 3 &)
¿Exactamente cómo quieres que se ejecuten? Si desea que se inicien en el fondo y ejecutar secuencialmente , harías algo como esto:
{ sleep 2; sleep 3; } &
Si quieres sleep 3
ejecutar solo si sleep 2
tiene éxito, entonces:
sleep 2 && sleep 3 &
Si, por el contrario, desea que se ejecuten en paralelo en el fondo , en su lugar puedes hacer esto:
sleep 2 & sleep 3 &
Y las dos técnicas se pueden combinar, como por ejemplo:
{ sleep 2; echo first finished; } & { sleep 3; echo second finished; } &
Bash siendo bash, a menudo hay una multitud de técnicas diferentes para realizar la misma tarea, aunque a veces con sutiles diferencias entre ellas.