为何不同终端定义bash函数时间歇性出现`syntax error near unexpected token `('`?
Bash函数在JetBrains Rider终端报错、iTerm2正常的问题
我遇到的错误提示和某Stack Overflow问题完全一致:syntax error near unexpected token ('`,但我的情况有以下关键差异:
- 我定义的是函数,而非别名
- 其他用完全相同方式定义的函数都能正常运行
- 切换到iTerm2终端后,错误直接消失
那个问题的高赞回答总结部分提到:
你不仅需要在定义别名命令时引用它,还要在后续命令行中按原样使用时进行引用。
对你而言最简单的解决方案是结合外层'...'引用和内层"..."引用(也有其他解决方案;注意使用"..."进行内层引用意味着如果定义中包含变量引用,它们会在别名被使用时展开)
但这个回答对我完全没用——不管是原提问者的情况还是我的,Bash似乎都在根本没有`字符的位置识别到了这个符号。
我的.bash_aliases文件相关代码如下:
# Checkout the given branch of mine, without having to type the "users/kent/" prefix gc() { git checkout users/kent/$1; } # Create and checkout a new branch in my user folder, without having to type the "users/kent/" prefix gcb() { git checkout -b users/kent/$1; } # Rename a local Git branch, without having to type the "users/kent/" prefix gr() { git branch -m users/kent/$1; }
奇怪的是,在JetBrains Rider的集成终端里,前两个函数gc和gcb都能正常工作,但最后一个gr却报错;而在iTerm2里三个函数全都能正常运行,这让我完全摸不着头绪。
内容的提问来源于stack exchange,提问作者Kenny83
相关产品推荐
相关产品推荐

