Sie müssen nur das entfernen ;
. &
Fungiert als Befehlstrennzeichen für sich, das Hinzufügen ;
danach ist ungültig.
(sleep 30; command1; command2 param ) & anotherCommand
(Die Leerzeichen nach den Semikolons sind nicht erforderlich. Ich finde es einfach einfacher, auf diese Weise zu lesen. Dies ist einer der wenigen Orte, an denen Leerzeichen in der Shell-Syntax optional sind - die meisten Stellen sind entweder erforderlich oder verboten.)
Für bessere Wege, dies zu tun ... das hängt wirklich davon ab, was Sie genau tun. Wir benötigen mehr Informationen, um bessere Vorschläge zu machen.