Zastanawiam się, dlaczego wystąpił błąd przy użyciu asynchronicznego polecenia w pętli?
$ for i in {1..8}; do sleep 100 & ; done
bash: syntax error near unexpected token `;'
Jeśli napiszę to jako
$ for i in {1..8}; do
> sleep 100 &
> done
to działa dobrze.
Jak mogę napisać to w jednym wierszu bez błędu?
echo foo ; ; echo bar
w bash 4.4 mówisyntax error near unexpected token `;'
.dash
daje podobny błąd. W tym przypadku jest to puste polecenie, ponieważ żadna inna część gramatyki go nie zużywa. Myślę, że mogą mówić o zbędnych;
na końcu linii, takich jaksleep 100;
(nowa linia).Zgrupuj swoje
do
działania w nawiasach klamrowych:Łatwy do zrozumienia zarówno dla Ciebie, jak i dla Bash!
źródło