全部
我正在逐行读取文件。每行都是一个带有特定存储库路径的 svn update 命令。我的代码如下所示:
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
它终止循环,此后的命令将不会被执行和记录。我的第一个线索是显示错误(无法读取标准输入)会导致读取行的过程崩溃,因为两者可能共享标准输入。关于如何避免这种终止的任何想法?