壳牌因[已完成流程]而崩溃

时间:2012-07-14 20:00:31

标签: git terminal zsh

我正在为Z-Shell编辑dotfile别名。这是我从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运行超慢。

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


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

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

1 个答案:

答案 0 :(得分:0)

好吧,我编辑了多个别名。导致[过程完成]的真正问题不是执行的功能。这是我添加的这个功能


    gls() {
        query="$1"
        shift
        glog --pickaxe-regex "-S$query" "$@"
    }

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

或者另一个问题,我在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中调用的方式吗?