gpt4 book ai didi

linux - 在 bash 函数名称末尾使用加号

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:51 28 4
gpt4 key购买 nike

我需要创建一个名称以 + 结尾的 bash 函数。例如 foo+。这些工作:

+foo() { true; }
foo+bar() { true; }

但这不是:

foo+() { true; }
-bash: syntax error near unexpected token `}'

为什么不呢?它不会提示 +。有解决办法吗?

最佳答案

发生这种情况是因为 +() 是一个 extglob(启用时),所以 bash 看到 someglob { true; } 无效。

这是在没有 extglob 的情况下工作:

$ shopt -u extglob
$ foo+() { echo bar; }

这是与 extglob 的冲突:

$ shopt -s extglob 
$ foo+() { echo bar; }
bash: syntax error near unexpected token `}'

解决方法包括在 () 之前添加一个空格或使用 function 关键字:

foo+ () { echo bar; }
function foo+() { echo bar; }

关于linux - 在 bash 函数名称末尾使用加号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46492724/

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