|
1
30
我认为这是扩张的顺序:
因此,如果你的变量被替换,括号扩展将不再发生。这对我来说很有效:
小心eval。它会逐字逐句地执行这些东西。所以如果dirs包含
我对此不是百分之百确定,但这对我来说是有道理的。 |
|
|
2
28
|
|
|
3
11
对于像我这样通过谷歌发现这一点的人来说,@Peter和@feoh的答案是“如何在bash脚本中全局变量”的通用解决方案。
将保存匹配的现有文件名
您可以通过以下方式访问每个结果
|
|
|
4
9
这不是文件名全局搜索,这是大括号扩展。 这种差异是微妙的,但它确实存在——在文件名全局搜索中,你只会收到现有的文件,而在大括号扩展中,你可以生成任何类型的字符串。 http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion http://www.gnu.org/software/bash/manual/bashref.html#Filename-Expansion 现在,这对我来说是有效的:
|
|
|
5
3
我怀疑你需要的是一个数组,但这会限制你使用较新的攻击。这比使用eval更省钱。
将扩展到:
这些目录的存在与扩展无关。 当您将变量分配给支架展开时,情况变得不可预测。
可能会变成
或
或
或
如果你以任何方式引用大括号,它们都不会展开,因此结果将包含大括号,并且大多没有意义。 |
|
|
6
2
既然你想环游世界 文件夹, 你不应该使用大括号扩展。在这种情况下使用支架展开是 反模式 而且肯定是这项工作的错误工具。 你想要的是 extended globbing :
|
|
|
7
0
没有人解决的问题是变量赋值造成了差异。
扩展方式与
问题是如何将扩展的结果分配给
|
|
|
8
0
在cygwin下工作。 |