Можно ли изменить значение переменной среды из сценария bash так, чтобы оно сохранялось?

Мне нужно было подключиться к экземпляру EC2, используя ключ .pem + connect, используя обычный режим имени пользователя-пароля. Я решил эти требования, включив псевдонимы хоста в файл ~/.ssh/config. Пример:

Host ssh_using_key
HostName abc.myawesomesite.com
User ubuntu
IdentityFile ~/.ssh/MyPrivateKey.pem
Compression yes

Host ssh_using_userpass
HostName 173.193.72.103
User root
Port 2222

Теперь, как описано выше, откройте «Файл»> «Подключиться к серверу» в «Наутилус». Пример:

Для SSH с использованием клавиши:

Server = ssh_using_key (as in the ~/.ssh/config file)
Type = SSH
Folder = /var/www
[leave User Details BLANK.]

Для SSH с использованием клавиши:

Server = ssh_using_userpass (as in the ~/.ssh/config file)
Port = 2222
Type = SSH
Folder = /home/www
User name = root
Password = lamepassword
Check Remember this password.

Пожалуйста, измените это в соответствии с вашими потребностями. Надеюсь, это поможет кому-то.

0
задан 15 May 2018 в 14:54

3 ответа

Короткий ответ: «Нет, вы не можете навсегда изменить переменную среды из сценария Bash».

Более длинный ответ заключается в том, что при выполнении сценария Bash он получает копию среда (не относится к самим переменным среды). Таким образом, хотя вы можете изменить значения копий в вашем скрипте, эти изменения будут потеряны при выходе сценария, а также не будут видны другим скриптам, которые вы можете запускать одновременно.

Вы копируете , однако, измените переменную среды с помощью сценария Bash с помощью «source» - из командной строки:

source  your_script_name
1
ответ дан 22 May 2018 в 10:41
  • 1
    Спасибо, Питер, я просто взглянул на «источник». и он не режет его для этой цели. Мне нужно передать переменную из сценария Nemo в скрипт, который выполняется апплетом, поэтому единственным жизнеспособным способом является использование временного файла в качестве десерта. – S.R. 15 May 2018 в 15:45

Короткий ответ: «Нет, вы не можете навсегда изменить переменную среды из сценария Bash».

Более длинный ответ заключается в том, что при выполнении сценария Bash он получает копию среда (не относится к самим переменным среды). Таким образом, хотя вы можете изменить значения копий в вашем скрипте, эти изменения будут потеряны при выходе сценария, а также не будут видны другим скриптам, которые вы можете запускать одновременно.

Вы копируете , однако, измените переменную среды с помощью сценария Bash с помощью «source» - из командной строки:

source your_script_name
1
ответ дан 17 July 2018 в 14:15

Короткий ответ: «Нет, вы не можете навсегда изменить переменную среды из сценария Bash».

Более длинный ответ заключается в том, что при выполнении сценария Bash он получает копию среда (не относится к самим переменным среды). Таким образом, хотя вы можете изменить значения копий в вашем скрипте, эти изменения будут потеряны при выходе сценария, а также не будут видны другим скриптам, которые вы можете запускать одновременно.

Вы копируете , однако, измените переменную среды с помощью сценария Bash с помощью «source» - из командной строки:

source your_script_name
1
ответ дан 20 July 2018 в 14:18

Другие вопросы по тегам:

Похожие вопросы: