i have following lines in a bash script under Linux:
...
mkdir max15
mkdir max14
mkdir max13
mkdir max12
mkdir max11
mkdir max10
...
how is the syntax for putting them in a loop, so that i don't have to write the numbers (15,14..) ?
with bash, no need to use external commands like seq
to generate numbers.
for i in {15..10}
do
mkdir "max${i}"
done
or simply
mkdir max{01..15} #from 1 to 15
mkdir max{10..15} #from 10 to 15
say if your numbers are generated dynamically, you can use C style for loop
start=10
end=15
for((i=$start;i<=$end;i++))
do
mkdir "max${i}"
done
No loop needed for this task:
mkdir max{15..10} max0{9..0}
... but if you need a loop construct, you can use one of:
for i in $(seq [ <start> [ <step> ]] <stop>) ; do
# you can use $i here
done
or
for i in {<start>..<stop>} ; do
# you can use $i here
done
or
for (( i=<start> ; i < stop ; i++ )) ; do
# you can use $i here
done
or
seq [ <start> [ <step> ]] <stop> | while read $i ; do
# you can use $i here
done
Note that this last one will not keep the value of $i outside of the loop, due to the |
that starts a sub-shell
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With