0

次のようなシェルスクリプトを書いているとき:

echo -n 'Enter description of new version: ';

read desc;

git commit -m $desc;

複数の単語の説明を入力すると、 $desc に1単語だけが取り込まれ、次のようなエラーが発生します。

Enter description of new version: hope it works
error: pathspec 'it' did not match any file(s) known to git.
error: pathspec 'works'' did not match any file(s) known to git.
fatal: too many params

そして時々それは次のように与えています:

Enter description of new version: final check
error: pathspec 'check'' did not match any file(s) known to git.
fatal: Failed to resolve 'check'' as a valid ref.
Everything up-to-date

私のスクリプトの問題は何ですか?

コマンドラインから複数の単語の説明を変数 $desc に読み込む原因と解決策を提案してください

私は使用してみました:

echo -n 'Enter description of new version: ';

read text;

desc="'"$text"'";

git commit -m $desc;

しかし、役に立たない。

前もって感謝します

4

1 に答える 1

3

引用する必要があります:

git commit -m "$desc"

違いは次のとおりです。

git commit -m hope it works

git commit -m "hope it works"

前者はファイルitworksメッセージをコミットしようとしますhopeが、後者はメッセージとインデックスをコミットしますhope it works

于 2013-06-04T13:14:53.610 に答える