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

$ TMPLIST имеет список местоположений, которые я хочу обработать. Я пытаюсь запустить что-то подобное выше, но скобки внутри backticks не расширяются. Что я делаю не так?Команда Bash с backticks внутри xargs

+0

Зачем делать что-то такое сложное? Как насчет того, чтобы перебирать его таким образом, чтобы его можно было читать? – fedorqui

+0

Использование backticks. –

ответ

3

В этой команде ...

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

... в backtics интерпретируются оболочкой; они никогда не видны xargs. Вы могли бы сделать что-то вроде этого:

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

Обратите внимание, что для этой работы, DATESTRING необходимо будет переменная окружения, а не переменной оболочки (например, вам нужно будет export DATESTRING).

+0

Отлично, спасибо за предупреждение о внесении переменной ENVAR. – pmilb

Смежные вопросы