我正在使用 xargs 将参数填充到我想要停止脚本的脚本中,等待用户输入。就像是:
echo a b c | xargs bash -c 'for a in "$@"; do echo $a; read; done'
Run Code Online (Sandbox Code Playgroud)
但read被忽略了。似乎第二个脚本也试图从管道中获取它的输入?我试过了,xargs -p但没有更好。
如果将选项-a提供给xargs,则将从文件而不是标准输入中读取参数。您可以使用 bash 的进程替换和语法<( ... )来动态创建文件。
xargs -a <( echo A B C ) bash -c 'for x in "$@"; do echo $x; read; done'
Run Code Online (Sandbox Code Playgroud)
请注意,此处$@遗漏了第一个参数(在本例中为“A”)。这是因为bash -c放“A”到$0(一般需脚本文件的名称),和$@提供$1,$2等等(在此情况下,“B”和“C”)。
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |