Linux下创建目录所有文件夹数组出现bash语法错误如何解决
错误原因及修复方案
你遇到的语法报错核心是 Bash 变量赋值规则要求等号两侧不能有空格,你写的赋值语句中等号左右多了空格,导致bash无法识别数组赋值语法,才抛出unexpected token ('`的错误。
正确写法示例
- 手动指定元素的数组赋值
testarray=(/filepath/a/ /filepath/b/ /filepath/c/)
- 通配符匹配目录下内容赋值
testarray=(/filepath_tofolder_where_abc_are/*/)
如果需要避免匹配不到内容时通配符直接作为字符串存入数组,可以提前执行shopt -s nullglob开启空匹配规则,匹配不到内容时会得到空数组。
- 带家目录符号
~的通配符赋值
testarray=(~/filepath_tofolder_where_abc_are/*/)
验证方法
赋值完成后可以执行以下命令验证结果:
- 查看数组元素总个数:
echo ${#testarray[@]} - 打印数组所有元素:
echo ${testarray[@]} - 查看第一个元素内容:
echo ${testarray[0]}
注意:如果路径中包含空格、特殊字符,建议给每个路径包裹双引号避免解析异常。
内容的提问来源于stack exchange,提问作者Samantha Goldman
相关产品推荐
相关产品推荐

