我所在的目录中有两个文本文件:
$ touch test1.txt
$ touch test2.txt
当我尝试使用某种模式列出文件(使用Bash)时,它可以工作:
$ ls test?.txt
test1.txt test2.txt
$ ls test{1,2}.txt
test1.txt test2.txt
但是,当使用内含的命令生成模式时$()
,只有一种模式有效:
$ ls $(echo 'test?.txt')
test1.txt test2.txt
$ ls $(echo 'test{1,2}.txt')
ls: cannot access test{1,2}.txt: No such file or directory
这里发生了什么?为什么该模式{1,2}
不起作用?
?
在还援引,并得到后扩大$(...)
的替代品,但支架膨胀不会。
$
-expansions:的结果执行任何大括号扩展zsh -o globsubst -c 'a=/e*; b={/b*,/v*}; echo $a; echo $b'
。