echo $TMPLIST | xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump `get-temp-url --location {}`
$TMPLIST包含一个需要处理的位置列表。 我试图运行类似上面的代码,但是反引号内部的括号没有被扩展。我做错了什么?
In this command...
echo $TMPLIST |
xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump \
`get-temp-url --location {}`
反引号是由shell解释的,xargs永远不会看到它们。你可以像这样做:
echo $TMPLIST |
xargs -I{} -n 1 -P $MAXJOBS \
sh -c 'curl -o {}_$DATESTRING.dump `get-temp-url --location {}`'
DATESTRING
需要成为环境变量,而不是一个 shell 变量(例如,您需要执行 export DATESTRING
)。
xargs
用法是并行处理中最简洁的方式之一(请注意-P
参数)。 - KT.