|
shell, 变量是文件名并包含通配符, 变量展开时无法匹配的问题
[maj@linux.test.machine tmp]$ ls
file.a.0 file.a.3 file.a.6 file.a.9 file.b.2 file.b.5 file.b.8 file.c.1 file.c.4 file.c.7
file.a.1 file.a.4 file.a.7 file.b.0 file.b.3 file.b.6 file.b.9 file.c.2 file.c.5 file.c.8
file.a.2 file.a.5 file.a.8 file.b.1 file.b.4 file.b.7 file.c.0 file.c.3 file.c.6 file.c.9
[maj@linux.test.machine tmp]$ A="file.{a,b,c}.*"
[maj@linux.test.machine tmp]$ ls $A
ls: file.{a,b,c}.*: No such file or directory
[maj@linux.test.machine tmp]$ A=file.{a,b,c}.*
[maj@linux.test.machine tmp]$ ls $A
ls: file.{a,b,c}.*: No such file or directory
[maj@linux.test.machine tmp]$ A="file.[abc].*"
[maj@linux.test.machine tmp]$ ls $A
file.a.0 file.a.3 file.a.6 file.a.9 file.b.2 file.b.5 file.b.8 file.c.1 file.c.4 file.c.7
file.a.1 file.a.4 file.a.7 file.b.0 file.b.3 file.b.6 file.b.9 file.c.2 file.c.5 file.c.8
file.a.2 file.a.5 file.a.8 file.b.1 file.b.4 file.b.7 file.c.0 file.c.3 file.c.6 file.c.9
从上述命令看出, 使用{}通配在变量里面赋值会失败, 但是用[]通配就会成功, 这个问题困扰了我好久, 这次是a,b,c下次要是a, ab, abc, 可咋整啊?
怎样才能让{}生效啊? |
|