在 bash 脚本中执行以下两行代码时,“ls”会抱怨文件不存在:
dirs=/content/{dev01,dev02}
ls -l $dirs
当我使用 -x 选项运行脚本时,它似乎在单引号内传递变量(这将防止通配符):
+ dirs=/content/{dev01,dev01}
+ ls -l '/content/{dev01,dev01}'
ls: /content/{dev01,dev01}: No such file or directory
如果我从交互式 shell(无引号)执行“ls”命令,它将返回两个目录。
我一直在阅读 Bash 参考手册(v 3.2)并且看不到任何不发生文件名通配的原因(我没有将 -f 传递给 shell),或者我可以设置的任何内容以确保发生通配。