将多个用户输入转换为 mkdir 参数以创建多个文件夹 - Bash 脚本

问题描述

我想使用用户输入创建多个文件夹。例如,如果用户写了 java,python,react,我正在寻找的结果分别是文件javapythonreact。但是会发生什么,创建了一个名为 {java,react}文件夹。逗号不再被识别。

## The code
read -p "External projects: " EXTERNAL_PROJECTS 

mkdir -p {$EXTERNAL_PROJECTS}

解决方法

它不起作用,因为括号扩展是在参数扩展之前执行的。也就是说,在扩展参数 EXTERNAL_PROJECTS 后,不会重新扫描结果字符串以进行大括号扩展。解决这个问题的一种方法是使用数组:

IFS=',' read -r -p "External projects: " -a EXTERNAL_PROJECTS

mkdir -p "${EXTERNAL_PROJECTS[@]}"