Bash 命令在 xargs 中带有反引号

Bash command with backticks inside of 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 {}`

...反义词由 shell 解释 xargs 从未见过他们。你可以这样做:

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

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