问题
I´m trying do do a simple counter:
max=100
count=1
while [[ $count -le $max]]
do
echo "$count"
((count++))
done
This gives me a syntax error in conditional expression near do.
What´s my issue? (probably something obvious)
The idea is then to raise the max
from 100 to 200 and so forth in a superior loop so I will get a new file to manipulate with a python program 100 lines each time, but that´s irrelevant here.
回答1:
Your mistake is that it need one more space in [[ $count -le 100]]
max=100
count=1
while [[ $count -le $max ]]
do
echo "$count"
((count++))
done
Another solution :
while ((count < max+1)); do echo $((count++)); done
or
for ((i=count; i<max; i++)) { echo $i; }
or
for ((i=count; i<max; i++)); do echo $i; done
or
for i in {1..100}; do echo $i; done
回答2:
Change the line:
while [[ $count -le 100]]
to:
while [[ $count -le 100 ]];
Notice the space after 100.
来源:https://stackoverflow.com/questions/12840769/bash-while-loop-syntax-error-in-do