1

我正在为 Z-Shell 编辑点文件别名。这是我从 dotfiles repos 中找到的别名。

function gch() {
    git clone git://github.com/$USER/$1.git
}

然后当我去 zsh 时,运行如下命令:

gch benhoskings dot-files

我期望发生的是

git clone https://github.com/benhoskings/dot-files

运行该命令后,它只输出

[Process completed]

外壳冻结,^C 也不起作用。我启动了一个新的 shell,我所有的 git 命令都被粉碎了,就像我执行一样git status,它显示[Process completed]并且 shell 运行速度非常慢。

我知道修复别名函数需要什么,所以我可以传递两个参数,比如这些

     函数 gch() {
         git clone git://github.com/$1/$2.git
     }

如何杀死在后台运行的进程?它减慢了一切,无法运行任何 git 命令。我通过采购.zshrc重新加载zsh,并尝试重新启动计算机以清除当前会话,但仍然无法摆脱在后台运行的进程。我该如何解决?

4

1 回答 1

0

好吧,我已经编辑了多个别名。导致 [Process completed] 的真正问题不是执行的功能。这是我添加的这个功能

    gls() {
        查询="$1"
        转移
        glog --pickaxe-regex "-S$query" "$@"
    }

我不知道为什么它会导致外壳中断,但是我删除了该功能,一切都恢复了正常。当我看到 [Process completed] 错误时,我吓坏了很长时间。好吧,谁能告诉我为什么这个坏了?

或者另一个问题,我从 github 上其他人的 dotfiles 中找到的。有时它使用这种格式:

    git_current_branch() {
        cat "$(git rev-parse --git-dir 2>/dev/null)/HEAD" | sed -e 's/^.*refs\/heads\///'
    }

有时,它使用这种格式和 function 关键字:

    功能 git_current_branch() {
        cat "$(git rev-parse --git-dir 2>/dev/null)/HEAD" | sed -e 's/^.*refs\/heads\///'
    }

他们都有效。这两种格式有什么区别?这是您在 CLI 中调用的方式吗?

于 2012-07-14T21:09:23.897 回答