bash
does brace expansion
before variable expansion
, so you get weekly.{0..4}
.
Because the result is predictable and safe(Don't trust user input), you can use eval
in your case:
$ WEEKS_TO_SAVE=4
$ eval "mkdir -p weekly.{0..$((WEEKS_TO_SAVE))}"
note:
eval
is evil
- use
eval
carefully
Here, $((..))
is used to force the variable to be evaluated as an integer expression.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…