bash – 如何使用xargs运行脚本中的用户

我正在使用xargs将参数填充到脚本中,我想在其中停止脚本,等待用户输入.就像是:

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

但是读取被忽略了.似乎第二个脚本也试图从管道输入它?我已经尝试过xargs -p但它并没有更好.

解决方法

如果给xargs选项-a,则将从文件而不是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’).

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...