给出以下脚本:
#!/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'
答案 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