这个问题似乎经常被问到,但对于我的问题仍然没有令人满意的答案。 因此,我希望你能帮助我。
在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脚本?
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标志而发生,但是没有。 似乎命令有问题。 虽然两个命令都完美地完成了他们的工作 只有第一个提出错误。 有任何想法吗 ?
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] 举报,一经查实,本站将立刻删除。