Terminals Tab键不会自动完成,而是尝试运行我的脚本

时间:2019-10-29 10:40:40

标签: bash terminal git-bash linux-mint

因此,我不确定这是错误还是在未意识到的情况下更改了设置。

每当我使用tab自动完成git-bash中的参数时,它都会尝试运行我的脚本三次。

mike@Puter:~/workspace/project$ git bash: ./run_proxy_tests.sh: No such file or directory
bash: ./run_proxy_tests.sh: No such file or directory
bash: ./run_proxy_tests.sh: No such file or directory

我只输入“ git”并按下选项卡,然后它尝试运行该脚本。显然,如果我在正确的目录中,则它实际上确实会运行该脚本3次。

这仅在键入“ git”之后发生。我已经尝试过其他命令,并且可以按预期方式工作。

我已经采取的步骤:

1. System reboot
2. Checked ~/.bashrc && ~/.bash_aliases for an alias that may cause this
3. tried different terminals and multiplexers (tmux, tillix, terminal) (The problem exists in all)
4. sudo apt-get --remove git then reinstalled

编辑:我还应该补充一点,如果我输入“ git checkout” “ git add”等。

我真的不认为会发生这种情况。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。现在我想起来很新手。

在我的〜/ .bash_aliases中,我有一个这样写的别名:

alias test="./run_proxy_tests.sh -p ~/workspace/project/project-proxy.linux.x86_64 -l 1"

我通过淘汰过程发现,如果我将其注释掉。问题消失了。

但是为什么会这样呢?为什么按Tab键运行别名。而且只有在运行git命令时。

好吧,我在“ git-completion.bash”文件中查看了git的git存储库。并发现了这一点:

    while test -n "$rest"; do

难怪它跑了3次。

故事的道德: 命名别名时要更明确

参考: https://github.com/git/git/blob/master/contrib/completion/git-completion.bash#L132