linux – Bash完成抛出语法错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – Bash完成抛出语法错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1865字,纯文字阅读大概需要3分钟。
内容图文
问题:
假设我正在尝试更改为名为“build”的目录,该目录位于我当前所在的目录中.我开始:
cd b
然后我按Tab键一次(知道当前的目录中没有其他目录以字母b开头).我希望能看到以下内容,随时准备让我根据需要点击返回或更改或扩充.
cd build
但是,在运行Linux Peppermint 3的上网本上,我发现按下标签按钮会出现这种情况:
cd bbash: command substitution: line 74: syntax error near unexpected token `done'
bash: command substitution: line 74: ` done'
我试过的事:
>我已经尝试重新安装“bash-completion”软件包,但这没有明显的效果.
>我已经查看了文件/ etc / bash_completion,特别是在第74行,但我看不出任何明显需要纠正的内容(完成-f -X’* .Z’压缩znew).也许我在找错了文件.
>我发现git,gedit和节点等命令的完成没问题.但是尝试为kate自动完成文件名也不起作用.
>当我运行bash -x进行调试时,在终端中打印了很多代码,最后一点(请注意注释):
+ toks=(${toks[@]-} $(
compgen -d -- "$quoted" | {
while read -r tmp; do
# TODO: I have removed a "[ -n $tmp ] &&" before 'printf ..',
# and everything works again. If this bug suddenly
# appears again (i.e. "cd /b<TAB>" becomes "cd /"),
# remember to check for other similar conditionals (here
# and _filedir_xspec()). --David
printf '%s\n' $tmp
done
}
))
bash: command substitution: line 74: syntax error near unexpected token `done'
bash: command substitution: line 74: ` done'
我尝试添加后面提到的条件,但这没有效果.
>我试过暂时删除etc / bash_completion.d但这没有效果.
>我已经尝试完成-p来查看完成列表,但我真的不知道我在寻找什么.
一个最后的PLEA
如果需要的话,我愿意用shell脚本弄脏自己.在此过程中,我可以了解更多相关信息.我真的会修复它.任何建议赞赏.
解决方法:
Bash完成是模块化的;不同的包提供自己的完成扩展.另一个包可能包含bug.试试mv /etc/bash_completion.d{,.old},看看是否能修复它.如果是这样,请执行mv /etc/bash_completion.d{.old,}将其再次移回,然后将各个文件逐个移出/etc/bash_completion.d目录,以识别导致问题的文件. (在Peppermint上,目录可能被称为略有不同.)
内容总结
以上是互联网集市为您收集整理的linux – Bash完成抛出语法错误全部内容,希望文章能够帮你解决linux – Bash完成抛出语法错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。