【发布时间】:2015-04-18 10:47:43
【问题描述】:
我想在 bash 中编写以下函数:
go() {
cd "~/project/entry ${1}*"
}
这会做的是 cd 到带有前缀entry(注意空格)和可能长后缀的项目子目录。我只需要给它一个部分名称,它会完成目录名称的后缀。
例如,如果我有以下文件夹:
~/project/entry alpha some longer folder name
~/project/entry beta another folder name
~/project/entry gamma
我可以运行go b,它会将我放入~/project/entry beta another folder name。
当然,问题在于通配符不能在双引号内展开。我不能省略引号,因为那样我将无法正确捕获空格。
如何在保留空格的同时扩展通配符?
【问题讨论】:
-
引用规则是逐个字符应用的——没有理由以同样的方式引用整个单词。例如,可以
'do something'"like $this"'to mix quoting styles'。