表达式是如何{,}
工作的?
我尝试搜索 SOF 以及 google 甚至 bash 的手册页,但我无法找到对此的解释。
通过摆弄表达式,我了解到它是某种字符串复制功能。
echo{,} foo
>> echo echo foo
echo foo{,}
>> foo foo
这个表达式是如何工作的?有这个名字吗?另外,你能提供一个使用这个功能的实际例子吗?
表达式是如何{,}
工作的?
我尝试搜索 SOF 以及 google 甚至 bash 的手册页,但我无法找到对此的解释。
通过摆弄表达式,我了解到它是某种字符串复制功能。
echo{,} foo
>> echo echo foo
echo foo{,}
>> foo foo
这个表达式是如何工作的?有这个名字吗?另外,你能提供一个使用这个功能的实际例子吗?
大括号扩展的“正常”用例是重复一个字符串,其中一个子字符串替换为花括号中给出的列表的每个元素:
$ echo file.{txt,dat,log}
file.txt file.dat file.log
现在,如果列表元素之一为空,则字符串按原样打印:
$ echo file.{txt,dat,}
file.txt file.dat file.
一个流行的用例是重命名文件
$ mv -v file.txt{,.bak}
'file.txt' -> 'file.txt.bak'
这扩展为mv -v file.txt file.txt.bak
,因为第一个列表元素是空的。
现在,如果所有元素都为空{,}
,则字符串的打印次数与列表元素的数量一样多。