bash for loop work in command line, but failed in script
13,864
Solution 1
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'
Solution 2
your bash command line ends with the first ;
so it gets executed separately as:
bash for i in {1..10};
do echo $i;
done
and man bash says command argument should be a file to load: bash [options] [file]
Author by
Leon
An old PHP developer, trying to learn SwiftUI. Any oppotunity to work as a SwiftUI developer is welcomed.
Updated on June 04, 2022Comments
-
Leon almost 2 years
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.