6

懸念を単純化するために、次のように絞り込みました。

私はGITエイリアスを次のように定義しています:

cii = "!f() { git commit "$@"; }; f"

私が走るとき

$ git cii -m "test1"

正常に動作しますが、失敗します

$ git cii -m "test1 and test2"
error: pathspec 'and' did not match any file(s) known to git.
error: pathspec 'test2' did not match any file(s) known to git.

何か案が ?

私の実際のエイリアスは上記よりもはるかに複雑であるため、cii="commit"で応答することはできません。ここでのポイントは、入力パラメーターを関数に渡すことです。

4

1 に答える 1

7

埋め込まれた二重引用符を引用する必要があります。

cii = "!f() { git commit \"$@\"; }; f"

次に、gitは標準のシェル拡張を実行します"$@"。これは、パラメーターごとに1つの単語に変換されます。"$1" "$2" "$3" ...

于 2012-04-20T18:54:47.163 に答える