Интересно, почему возникает ошибка при использовании асинхронной команды внутри цикла?
$ for i in {1..8}; do sleep 100 & ; done
bash: syntax error near unexpected token `;'
Если я напишу это как
$ for i in {1..8}; do
> sleep 100 &
> done
это отлично работает
Как я могу написать это в одной строке без ошибок?
echo foo ; ; echo bar
в bash 4.4 написаноsyntax error near unexpected token `;'
.dash
дает похожую ошибку. В этом случае это пустая команда, потому что никакая другая часть грамматики не использует ее. Я думаю, что они могут говорить о избыточности;
в конце строки, какsleep 100;
(новая строка ).Сгруппируйте свои
do
действия в фигурных скобках:Легко понять как для вас, так и для Bash!
источник