如何从使用xargs运行的脚本中提示用户

时间:2012-04-19 07:16:01

标签: bash xargs

我正在使用xargs填充脚本的参数,在该脚本中我想停止脚本,等待用户输入。类似的东西:

echo a b c | xargs bash -c 'for a in "$@"; do echo $a; read; done'

read会被忽略。似乎第二个脚本也试图从管道输入它?我已经尝试xargs -p但是没有更好。

1 个答案:

答案 0 :(得分:3)

如果选项-a被赋予xargs,则将从文件而不是stdin读取参数。您可以使用bash的流程替换和语法<( ... )来动态创建文件

xargs -a <( echo A B C ) bash -c 'for x in "$@"; do echo $x; read; done'

请注意,这里$@错过了第一个参数(在这种情况下为'A')。这是因为bash -c将'A'放入$0(通常采用脚本文件的名称),$@提供$1$2等。 ..(在这种情况下'B'和'C')。

相关问题