1

Z-Shell のドットファイル エイリアスの編集を行っていました。これは、dotfiles リポジトリから見つけたエイリアスです。

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 も機能しませんでした。新しいシェルを開始しました。すべての git コマンドがクラッシュしました。実行するgit statusと表示[Process completed]され、シェルの実行速度が非常に遅くなります。

エイリアス関数を修正する必要があることはわかっているので、次のように 2 つのパラメーターを渡すことができます。

     関数 gch() {
         git クローン git://github.com/$1/$2.git
     }

バックグラウンドで実行されているプロセスを強制終了するにはどうすればよいですか? すべてが遅くなり、git コマンドを実行できなくなります。.zshrc を入手して zsh をリロードし、コンピューターを再起動して現在のセッションをクリアしようとしましたが、バックグラウンドで実行されているプロセスを削除できません。どうすれば修正できますか?

4

1 に答える 1

0

さて、複数のエイリアスを編集しました。[処理完了] の本当の問題は実行された機能ではありません。それは私が追加したこの機能です

    gls() {
        クエリ="$1"
        シフト
        glog --pickaxe-regex "-S$query" "$@"
    }

シェルブレイクの原因はわかりませんが、関数を削除すると、すべてが正常に戻ります。[プロセスが完了しました] というエラーが表示されたとき、私は長い間びっくりしました。さて、これが壊れた理由を誰が教えてくれますか?

または別の質問、github の他の人のドットファイルから見つけました。場合によっては、次の形式を使用します。

    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\///'
    }

どちらも機能します。これらの 2 つの形式の違いは何ですか? CLIで呼び出す方法ですか?

于 2012-07-14T21:09:23.897 に答える