带有反引号的bash命令在xargs里面

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

$ TMPLIST有一个我想要处理的位置列表。 我正在尝试运行与上面类似的内容,但反引号内的括号不会扩展。 我究竟做错了什么?

在这个命令…

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

… backtics被shell解释; 他们从来没有被xargs看到。 你可以做这样的事情:

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

请注意,为此, DATESTRING将需要是一个环境变量,而不是一个shell变量(例如,您需要export DATESTRING )。