2つのテキストファイルがあるディレクトリにいます。
$ touch test1.txt
$ touch test2.txt
いくつかのパターンを使用して(Bashで)ファイルを一覧表示しようとすると、機能します。
$ ls test?.txt
test1.txt test2.txt
$ ls test{1,2}.txt
test1.txt test2.txt
ただし、パターンがで囲まれたコマンドによって生成される場合、パターンの$()
1つだけが機能します。
$ 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'
。