Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

bash for loop work in command line, but failed in script

When a run a for statement in debian bash command line, it works fine. But when I run it in a sh script or run it with bash command, it's keeping report "error near unexpected token `do'" Where is the difference?

[leon@www] ~/tmp $ for i in {1..10}; do echo $i; done
1
2
3
4
5
6
7
8
9
10
[leon@www] ~/tmp $ bash for i in {1..10}; do echo $i; done
-bash: syntax error near unexpected token `do'

BTW, all works fine in centos enviorment.

like image 613
Leon Avatar asked Dec 28 '22 15:12

Leon


1 Answers

Use the -c option so that bash reads the commands from the string you pass in. Also, use single quotes around the command.

bash -c 'for i in {1..10}; do echo $i; done'
like image 58
dogbane Avatar answered Jan 13 '23 10:01

dogbane