在 xargs 中带有反引号的 Bash 命令

pmi*_*ilb 5 linux bash xargs

  echo $TMPLIST | xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump `get-temp-url --location {}`
Run Code Online (Sandbox Code Playgroud)

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

lar*_*sks 5

在这个命令...

echo $TMPLIST | 
xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump \
  `get-temp-url --location {}`
Run Code Online (Sandbox Code Playgroud)

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

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

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