bash: переменная передачи xargs
как можно передать глобальную переменную скрипта команде xargs? Я попробовал так:
TEST=hallo2
echo "hallo" | xargs sh -c 'echo passed= test=$TEST' sh
выход:
passed=hallo test=
Я знаю, что мог бы использовать {}
токен, но мне нужно сделать это таким образом!
Я использую bash
.
3 ответов
принимать переменная $TEST
из цитаты:
TEST=hallo2
echo "hallo" | xargs sh -c 'echo passed= test='$TEST sh
добавлено в качестве ответа, как предложил@chepner.
export
переменная TEST
:
export TEST=hallo2
echo "hallo" | xargs sh -c 'echo passed= test="$TEST"' sh
С GNU Parallel вы можете избежать некоторых цитат:
TEST=hallo2
echo "hallo" | parallel echo passed={} test=$TEST
GNU Parallel существует как пакет для большинства дистрибутивов, и рекомендуется использовать обычный менеджер пакетов для установки. Но если для вашей системы нет пакета, установка GNU Parallel занимает буквально 10 секунд:
wget pi.dk/3 -qO - | sh -x
смотрите вступительные видео, чтобы узнать больше:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1