微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BASH:语法错误附近的意外标记`完成'别名为'做'

这个问题似乎经常被问到,但对于我的问题仍然没有令人满意的答案。 因此,我希望你能帮助我。

在Ubuntu LTE 13.04下打开terminal时出现以下错误

语法错误附近意外的令牌done' bash: /usr/share/bash-completion/bash_completion: line 225: done'

我检查了具体的“bash_completion” – 似乎很好。 此外,我将其缩小到我的.bashrc文件中的以下命令。

bash用/在tetx文件中replace

Bash正则expression式匹配不起作用

如何在不修改FreeBSD,OpenBSD和Linux的情况下使用bash脚本?

复制unix中两个文件间的差异

linux shell支持列表数据结构吗?

alias do='rsync -r -e ssh --exclude='file.py' [email protected]:/path/to/folder /do/here'

虽然下面的工作完全没有任何exception:

alias up='rsync -r -e ssh --exclude='file.py' /path/to/folder [email protected]:/do/here'

我检查了是否因为--exclude标志而发生,但是没有。 似乎命令有问题。 虽然两个命令都完美地完成了他们的工作 只有第一个提出错误。 有任何想法吗 ?

在GNU屏幕的hardstatus中显示一个窗口的用户

Linuxterminal:键入反馈消失了,换行符不显示

在bash中使用前面的命令的输出

Linux Bash脚本error handling

Shell脚本:从远程读取文件

在bash中, do是一个保留字。 它正在寻找一个do ... done块。 只要命名你的别名别的东西。

do是一个shell关键字。 您不能将其用作别名,而不会导致错误

除此之外 – 考虑使用函数而不是别名; 他们提供了更多的控制。 这个别名可能被重写为:

do_sync() { rsync -r -e ssh --exclude='file.py' [email protected]:/path/to/folder /do/here "$@" }

使用函数而不是别名可以让你做条件逻辑,在尾部以外的位置插入参数,并且大大简化了引用(对于你的别名来说,这里的别名几乎肯定没有做你想做的事情,因为你使用的是在别名文本和别名文本中都是相同的引用类型,不能转义)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐