Bash:如何将输出重定向为curl调用的特定参数?

时间:2015-11-04 12:34:27

标签: bash curl

给出以下脚本:

#!/bin/bash
echo 'Some processing'
echo 'Some more processing'
echo 'Done.'

我想做类似的事情:

./script | curl "https://somewebservice.com?token=XXX&input='$0'"

在上面的脚本结束时,我想要有效地进行3次卷发调用:

https://somewebservice.com?token=XXX&input='Some processing'
https://somewebservice.com?token=XXX&input='Some more processing'
https://somewebservice.com?token=XXX&input='Done'

1 个答案:

答案 0 :(得分:2)

只需使用xargs

./script | xargs -I {} curl https://somewebservice.com?token=XXX&input='{}'

xargs会将之前管道中的所有元素提供给curl

来自man xargs - > xargs - build and execute command lines from standard input

测试

$ cat a
a
b
c
$ cat a | xargs -I {} echo www.google.com/{}
www.google.com/a
www.google.com/b
www.google.com/c