Vegyünk egy egyszerű for loop 
#!/bin/bash for i in `seq 1 10`; do echo $i done 
Az AFAIK pontosvessző a bash szkriptekben a shell szinkron módon hajtja végre az aktuális parancsot, majd folytassa a következővel. Az Enter lenyomása szó szerint ugyanezt teszi, kivéve, hogy “nem engedi megadni a következő parancsot, és azonnal kiöblíti a puffert. p>
Miért nem értelmezheti a shell a következő sort?
for i in `seq 1 10`; do; echo $i; done 
 Hogyan is működik ez a for loop működik? 
Válasz
 A for hurok szintaxisa a bash kézikönyv oldal 
for name [ [ in [ word ... ] ] ; ] do list ; done 
 A pontosvesszőket helyettesíteni lehet kocsivisszákkal, amint azt máshol a bash kézikönyv: “A parancsok lehatárolásához pontosvessző helyett egy vagy több új sor sorozata jelenhet meg a listában.” 
 Viszont a fordítottja nem igaz; nem lehet önkényesen cserélje ki az új sorokat pontosvesszővel. Többsoros szkriptje konvertálható egyetlen sorra, mindaddig, amíg betartja a fenti szintaxisszabályokat, és nem szúr be extra pontosvesszőt a do után: 
for i in `seq 1 10`; do echo $i; done 
Megjegyzések
- Az utolsó szkript hibás, amint arra a @ dr01 rámutatott, el kell távolítania a pontosvesszőt a .
 -  @jake, ez azt is mondja, hogy el kell távolítania a pontosvesszőt a 
doután. Ezenkívül ez a válasz elmagyarázza, hogy miért el kell távolítania a pontosvesszőt a `do ' után. -  Mi van, ha 
$ifájlnévnek kell lennie? Szüksége van dupla idézőjelekre? -  
filename_${i}akkor - @ user4556274 a szintaxis szerint " mert én csinálom; a kész " -nek is működnie kell. miért nem ' t?
 
Válasz
 A pontosvessző a do után hiba, és nem lehet ott. 
A következő megfelelően működik:
for i in `seq 1 10`; do echo $i; done