Updated SC2051 (markdown)

koalaman
2014-09-09 16:54:09 -07:00
parent 9fecdfb38d
commit 1cd6f2ff52

@@ -18,7 +18,19 @@
In Bash, brace expansion happens before variable expansion. This means that brace expansion will not account for variables.
Use an arithmetic for loop instead.
For integers, use an arithmetic for loop instead. For zero-padded numbers or letters, use of eval may be warranted:
from="a" to="m"
for c in $(eval "echo {$from..$to}"); do echo "$c"; done
or more carefully (if `from`/`to` could be user input, or if the brace expansion could have spaces or globs):
from="a" to="m"
while IFS= read -d '' -r c
do
echo "Read $c"
done < <(eval "printf '%s\0' $(printf "{%q..%q}.jpg" "$from" "$to")")
### Contraindications