Ich frage mich, warum bei der Verwendung eines asynchronen Befehls in einer Schleife ein Fehler auftritt.
$ for i in {1..8}; do sleep 100 & ; done
bash: syntax error near unexpected token `;'
Wenn ich es als schreibe
$ for i in {1..8}; do
> sleep 100 &
> done
das funktioniert gut.
Wie kann ich es ohne Fehler in eine Zeile schreiben?
echo foo ; ; echo bar
in der bash 4.4 stehtsyntax error near unexpected token `;'
.dash
gibt einen ähnlichen Fehler. In diesem Fall handelt es sich um einen leeren Befehl, da er von keinem anderen Teil der Grammatik verwendet wird. Ich denke, sie sprechen über redundante;
am Ende einer Zeile wiesleep 100;
(Newline).Gruppieren Sie Ihre
do
Aktionen in geschweiften Klammern:Leicht zu verstehen für Sie und für Bash!
quelle