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