2013-11-13 9 views
0

У меня есть команда, которую я выполняю в bash, для которой требуется переменная среды. Если я называю это так, то все работает отлично:Объем экспортируемых переменных в bash

export MYVAR=value & my_first_command 

Но теперь я хочу, чтобы трубы результат на второй команды, которая требует той же переменной окружения. Я попробовал это один:

export MYVAR=value & my_first_command | my_second_command 

В этом случае MYVAR кажется, не должен быть установлен для my_second_command. Каков правильный синтаксис, чтобы сделать MYVAR доступным для my_second_command?

+2

экспорт должен сделать MYVAR доступным для всех подпроцессов. FWIW, у вас есть опечатка, попробуйте 'export MYVAR = value && my_first_command' выполнить' my_first_command', если предыдущая команда была успешной. –

+1

Я даже не понимаю, как первая попытка может работать. Используя '&', переменная должна быть экспортирована только в своей «ничего-ничего», а не в 'my_first_command'. –

+0

что не так с 'export MYVAR = value; my_first_command; my_second_command'? – slayedbylucifer

ответ

2

& является неправильным и должен быть ;.

Использование & синтаксически актуально и выполняет команду в фоновом режиме; но запуск export в качестве фоновой задачи не имеет смысла.

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