Sho*_*que 3 linux ssh tab-completion
我正在使用 SSH 连接登录我的 Raspberry Pi。我之前通过 SSH 使用制表符补全,效果非常好。但现在,每当我尝试通过 SSH 使用制表符补全时,都会收到“连接已关闭”消息。
我认为外壳是bash.
有set -e您的启动脚本之一中然后Tab可能会触发此操作:在 shell 中启用set -e会导致 bash-completion 终止 shell。
\n\n如果管道 [\xe2\x80\xa6](可能由单个简单命令 [\xe2\x80\xa6]、列表 [\xe2\x80\xa6] 或复合命令 [\xe2\ x80\xa6] 返回非零状态。[\xe2\x80\xa6]
\n
在 Debian 9 的 Bash 4.4.12 中,我可以通过调用来复制此行为set -e然后使用制表符补全来复制此行为,如屏幕截图所示。
就跑吧false。如果它退出外壳,则意味着set -e处于活动状态。如果是这样,我希望set +e能够临时解决您的问题。再次登录并检查是否set +e问题是否消失。它应该。
您不想set +e每次登录时都运行。真正的解决方法是删除set -e从启动脚本中删除。要检查的文件:
~/.bashrc\n~/.bash_profile\n~/.bash_login\n~/.profile\n/etc/profile\n/etc/bash.bashrc\nRun Code Online (Sandbox Code Playgroud)\n其中一些可能不存在,这是正常的。并非每个文件都适用于您的特定情况,即使它们都存在。该列表并不详尽;这些脚本可以获取其他脚本,并且有--rcfile使用 Bash 来获取任何文件。
我的观点是:确认之后set -e是罪魁祸首之后,您需要在 shell 启动序列中找到它并将其删除。调查它为什么/如何到达那里可能会得出有趣的结论,但如果您只是想解决有问题的问题,这样的研究可能没有必要。
注意从一开始bash -e就运行一个处于活动状态的 shell ,因此set -eexec bash -e ,因此在启动脚本中会出现类似的症状。
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |