gpt4 book ai didi

bash - 在 bash 中,如何在双引号内扩展通配符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:22 24 4
gpt4 key购买 nike

我想在 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

当然,问题是通配符没有在双引号内展开。我不能省略引号,因为那样我将无法正确捕获空格。

如何在保留空格的同时扩展通配符?

最佳答案

移动引号。只是不要引用 *。最好不要引用 ~

go() {
cd ~/"project/entry ${1}"*
}

话虽如此,如果这匹配了多个东西,cd 将使用第一个匹配项并忽略所有其他匹配项。

关于bash - 在 bash 中,如何在双引号内扩展通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49120404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com