xargs无法获得用户输入?

时间:2012-06-10 08:01:02

标签: linux shell

我有一个这样的示例代码:

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

目的是并行运行svn update。但是当遇到冲突时,应该提示用户选择多个选项,它只是在不等待用户输入的情况下通过。并显示错误:

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

有什么方法可以解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:0)

是的,有办法解决这个问题!请参阅how to prompt a user from a script run with xargs的答案。长话短说,使用

xargs -a FILENAME your_script

xargs -a <(cat FILENAME) your_script

第一个版本实际上从文件中读取行,第二个版本从文件中读取行,这便于在带有awk或perl的管道链中使用xargs。如果你不想在空白处打破,请记住使用-0标志!