首页 > 解决方案 > 如何使用扩展运算符和 bash 变量与 mkdir(创建子文件夹) - Bash 脚本

问题描述

问题 1:我正在尝试为特定年份开始的项目创建子文件夹。为此,我尝试使用扩展运算符,但结果很简单{<start_year>..<end_year>}。我尝试使用逗号运算符,它起作用了。也许我错过了一些东西。

    └── projects
        ├── 2018
        ├── 2019
        ├── 2020
        └── 2021

## The code

declare -i START_DATE=$(date --date="3 years ago" +'%Y')  
declare -i END_DATE=$(date +'%Y')

mkdir -p projects/{$START_DATE..$END_DATE} 

________________________________________
result:
    
         projects
         └── {2018..2021}

问题 2:如果我尝试使用一个SUB_PROJECTS={$START_DATE,$END_DATE}可读且更容易更改值的变量,则 bash 命令无法区分符号,只能假设为一个完整的字符串。我该如何解决这个问题?

SUB_PROJECTS={$START_DATE,$END_DATE}
mkdir -p projects/$SUB_PROJECTS
________________________________________

result:
    
         projects
         └── `{2018,2021}`


标签: bashsubdirectory

解决方案


推荐阅读