我正在尝试运行一个curl命令,该命令需要来自管道的参数
some operation | sort | head -n -2 | curl -s "blah/blah/<argument goes here>/blah"
我无法弄清楚如何一次传递一个参数。我发现的一种方式是
some operation | sort | head -n -2 | xargs -l "$" curl -s "blah/blah/$/blah"
但是我得到了
xargs: $: No such file or directory
这是什么意思?为什么要尝试将$作为文件读取?
答案 0 :(得分:4)
请参阅BashFAQ #1了解逐行读取字符串的最佳做法:
#!/bin/bash
# ^^^^ - not /bin/sh, or <() will be a syntax error
while IFS= read -r line; do
curl -s "blah/blah/$line/blah"
done < <(some operation | sort | head -n -2)