在xargs内部使用反引号的Bash命令

时间:2015-05-08 14:35:02

标签: linux bash xargs

  echo $TMPLIST | xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump `get-temp-url --location {}`

$ TMPLIST有一个我想要处理的位置列表。 我试图运行类似于上面的东西,但反引号内的括号不会扩展。我做错了什么?

1 个答案:

答案 0 :(得分:4)

在此命令中......

echo $TMPLIST | 
xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump \
  `get-temp-url --location {}`

...外壳由解释;它们从未被xargs看到。你可以这样做:

echo $TMPLIST | 
xargs -I{} -n 1 -P $MAXJOBS \
  sh -c 'curl -o {}_$DATESTRING.dump `get-temp-url --location {}`'

请注意,要使其正常工作,DATESTRING需要是环境变量,而不是shell变量(例如,您需要export DATESTRING)。