CDP*_*DPF 12 bash brace-expansion cat
我试图连接子文件夹中的文本文件并尝试:
cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1}/book.txt > out$var
Run Code Online (Sandbox Code Playgroud)
然而,这并没有返回任何东西。因此,尝试添加一个不存在的“subfolder2”
cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1,subfolder2}/book.txt > out$var
Run Code Online (Sandbox Code Playgroud)
这一次它确实成功了,成功地连接了文件。为什么会发生这种情况?
小智 22
根据定义,GNU Bash 中的大括号扩展需要一个序列表达式或一系列逗号分隔的值:
要大括号扩展的模式采用可选前导码的形式,后跟一系列逗号分隔的字符串或一对大括号之间的序列表达式,后跟可选的后记。
您可以阅读手册了解详细信息。
echo {subfolder1}
{subfolder1}
echo {subfolder1,subfolder2}
subfolder1 subfolder2
echo subfolder{1}
subfolder{1}
echo subfolder{1..2}
subfolder1 subfolder2
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 21
{subfolder1}评估为{subfolder1},因为没有替代方案。使用subfolder1来代替。