Как изменить значение переменной среды внутри сценария оболочки

#shell #kubernetes

#оболочка #kubernetes

Вопрос:

У меня есть переменная среды kubernetes pod

 JOBID=111
  

Я изменяю эту переменную env внутри сценария оболочки, как показано ниже. Это изменение происходит внутри бесконечного цикла. таким образом, сценарий никогда не завершается.

 export JOBID=$(echo $line)
  

Внутри скрипта значение переменной изменяется на новое значение. Но если я проверю значение переменной env вне скрипта, при запуске нового терминала значение переменной env по-прежнему равно 111.

Ответ №1:

Внутри скрипта значение переменной изменяется на новое значение. Но если я проверю значение переменной env вне скрипта, при запуске нового терминала значение переменной env по-прежнему равно 111

Так работают переменные среды, и вы не можете это изменить. Вы можете изменить переменную только для определенного процесса, и эта среда будет распространяться на все остальные процессы, которые вы запускаете из этого процесса.

Но вы не можете перезаписать глобальное значение. Только локальное значение (process’copy). Любой другой процесс (например, запущенный kubectl exec) будет иметь «старое» значение переменной env.