Подтвердить что ты не робот

Установка переменных окружения для нескольких команд в bash однострочном

Скажем, у меня есть следующая команда

$ > MYENVVAR = myfolder echo $MYENVVAR && & MYENVVAR = myfolder ls $MYENVVAR

Я имею в виду, что MYENVVAR = myfolder повторяет

Можно ли установить его один раз для "& &" разделенные команды, сохраняя команду на одной строке?

4b9b3361

Ответ 1

Предполагая, что вы действительно нуждаетесь в ней как переменная среды (хотя код примера действительно не нужен переменная среды, некоторые переменные оболочки не являются переменными среды):

(export MYENVVAR=myfolder; echo $MYENVVAR && ls $MYENVVAR)

Если вам это не нужно как переменная среды, то:

(MYENVVAR=myfolder; echo $MYENVVAR && ls $MYENVVAR)

Скобки создают суб-оболочку; переменные среды (и простые переменные), установленные в под-оболочке, не влияют на родительскую оболочку. В обеих приведенных командах переменная устанавливается один раз, а затем используется дважды, по одной из двух команд.

Ответ 2

Скобки создают новые процессы, где вы можете установить свои собственные переменные:

( MYENVVAR=myfolder; echo  1: $MYENVVAR; ); echo  2: $MYENVVAR;
1: myfolder
2:

Ответ 3

Считаете ли вы использование export, например

export MYENVVAR=myfolder

тогда введите ваши команды, например echo $MYENVVAR (которые будут работать даже в под-оболочках) и т.д.