0

i have a sample code like this:

CMD="svn up blablabla | grep -v .tgz"
echo $CMD | xargs -n -P ${PARALLEL:=20} -- bash -c

the purpose is to run svn update in parallel. However when encounter the conflicts, which should prompt out several selection for users to choose, it just passes without waiting for user input. And an error is shown:

Conflict discovered in 'blablabla'.
Select: (p) postpone, (df) diff-full, (e) edit,
    (mc) mine-conflict, (tc) theirs-conflict,
    (s) show all options: svn: Can't read stdin: End of file found

Is there any way to fix this?

Thanks

4

2 に答える 2

0

はい、これを修正する方法があります。xargs で実行されるスクリプトからユーザーにプロンプ​​トを表示する方法の回答を参照してください。簡単に言えば、使用する

xargs -a FILENAME your_script

また

xargs -a <(cat FILENAME) your_script

最初のバージョンは実際にファイルから行を読み取り、2 番目のバージョンはファイルから行を読み取ります。これは、awk または perl を使用してパイプ チェーンで xargs を使用するのに便利です。空白で改行したくない場合は、必ず -0 フラグを使用してください。

于 2012-08-02T17:50:35.540 に答える