bash概要文件别名';测试';

bash概要文件别名';测试';,bash,git,macos,Bash,Git,Macos,我的bash配置文件中有一个别名,如下所示: alias test='cd/Usr/work/dir/test' 每次我尝试在终端中使用bash completion for git时,它都会: 点击标签后立即冻结终端 带我去那个目录 一旦我删除了别名bash,git的completion就可以正常工作了。为什么 git版本2.26.2 GNUBash,版本3.2.57(1)-发布(x86_64-apple-darwin19) 版权(C)2007免费软件基金会, < P>代码>测试是一个内置命令

我的bash配置文件中有一个别名,如下所示:

alias test='cd/Usr/work/dir/test'

每次我尝试在终端中使用bash completion for git时,它都会:

  • 点击标签后立即冻结终端
  • 带我去那个目录
  • 一旦我删除了别名bash,git的completion就可以正常工作了。为什么

    git版本2.26.2

    GNUBash,版本3.2.57(1)-发布(x86_64-apple-darwin19)
    版权(C)2007免费软件基金会,

    < P>代码>测试是一个内置命令,创建一个别名为“代码>测试<代码>阴影,这可能导致不可预见的问题。选择一个不同的名字

    alias goto_test='cd /Usr/work/dir/test'
    
    然而,这可能是最不理想的解决方案。首先,考虑使用一个函数代替:

    goto_test () {
        cd /Usr/work/dir/test
    }
    
    其次,您可以将
    /Usr/work/dir
    添加到
    CDPATH
    变量中,这样您就可以快速切换到任何子目录,而不必使用整个路径

    $ CDPATH=/Usr/work/dir
    $ cd test
    /Usr/Work/dir
    $ pwd
    /Usr/Work/dir/test
    

    如果有多个目录可以切换到,则无需定义多个别名或函数。

    test
    是一个内置命令,创建名为
    test
    的别名会将其隐藏起来,这可能会导致不可预见的问题。选择一个不同的名字

    alias goto_test='cd /Usr/work/dir/test'
    
    然而,这可能是最不理想的解决方案。首先,考虑使用一个函数代替:

    goto_test () {
        cd /Usr/work/dir/test
    }
    
    其次,您可以将
    /Usr/work/dir
    添加到
    CDPATH
    变量中,这样您就可以快速切换到任何子目录,而不必使用整个路径

    $ CDPATH=/Usr/work/dir
    $ cd test
    /Usr/Work/dir
    $ pwd
    /Usr/Work/dir/test
    

    如果有多个目录可以切换到,则无需定义多个别名或函数。

    此外,不要使用别名。它们在1996年之前就已经过时了。使用函数。另外,不要使用别名。它们在1996年之前就已经过时了。使用函数。