xre*_*ref 13 bash brace-expansion
WEEKS_TO_SAVE=4
mkdir -p weekly.{0..$WEEKS_TO_SAVE}
Run Code Online (Sandbox Code Playgroud)
给我一个名为daily的文件夹.{0..4}
在创建我缺少的文件夹时是否有大括号扩展的秘密?
anu*_*ava 10
大括号不支持BASH中的变量,您可以这样做:
for (( c=0; c<=WEEKS_TO_SAVE; c++ ))
do
mkdir -p weekly.${c}
done
Run Code Online (Sandbox Code Playgroud)
kev*_*kev 10
bash做brace expansion之前variable expansion,让您得到weekly.{0..4}.
因为结果是可预测且安全的(不要信任用户输入),所以您可以eval在您的情况下使用:
$ WEEKS_TO_SAVE=4
$ eval "mkdir -p weekly.{0..$((WEEKS_TO_SAVE))}"
Run Code Online (Sandbox Code Playgroud)
注意:
eval 是邪恶的eval小心使用这里,$((..))用于强制将变量计算为整数表达式.
jfg*_*956 10
另一种没有eval并只调用mkdir一次的方法:
WEEKS_TO_SAVE=4
mkdir -p $(seq -f "weekly.%.0f" 0 $WEEKS_TO_SAVE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5672 次 |
| 最近记录: |