すべて
私はファイルを1行ずつ読んでいます。各行は、特定のリポジトリパスを持つsvnupdateコマンドです。私のコードは次のようになります:
while read line
do
eval $line 2> /tmp/outputfile
egrep -e "svn: Target path .* does not exist" /tmp/outputfile > /dev/null && echo $line >> /tmp/result
done < $SVN_TMP_FILE
基本的に、廃止されたディレクトリを探すコマンドを記録したいと思います。
ただし、プロンプトに次の内容を表示するwhileループ中に競合が発生する可能性があります。
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
これによりループが終了し、その後のコマンドは実行および記録されません。私の最初の手がかりは、表示エラー(stdinを読み取れない)が、おそらく両方がstdinを共有しているという理由で、行の読み取りプロセスをクラッシュさせることです。この終了を回避する方法について何かアイデアはありますか?