Saya bertanya-tanya mengapa ada kesalahan menggunakan perintah asinkron dalam satu loop?
$ for i in {1..8}; do sleep 100 & ; done
bash: syntax error near unexpected token `;'
Jika saya menuliskannya sebagai
$ for i in {1..8}; do
> sleep 100 &
> done
ini bekerja dengan baik.
Bagaimana saya bisa menulisnya dalam satu baris tanpa kesalahan?
echo foo ; ; echo bar
di bash 4.4 mengatakansyntax error near unexpected token `;'
.dash
memberikan kesalahan serupa. Dalam hal ini, ini adalah perintah kosong karena tidak ada bagian lain dari tata bahasa yang mengkonsumsinya. Saya pikir mereka mungkin berbicara tentang berlebihan;
di akhir baris sepertisleep 100;
(baris baru).Kelompokkan
do
tindakan Anda dalam kurung keriting:Mudah dimengerti untuk Anda dan juga untuk Bash!
sumber