Установка переменной системной среды через скрипт bash?

Я пробовал gestikk в прошлом, но у easystroke действительно было много, гораздо больше функций и лучшего пользовательского интерфейса. Я также искал альтернативу, но я не мог найти ни одного, имеющего хотя бы половину количества функций easystrokes. Во всяком случае, я полностью удовлетворен easystroke и> 60 определенными жестами ^^

0
задан 12 January 2018 в 23:59

3 ответа

Ошибка, которую вы получаете, вероятно, потому что EDITOR не задан - поэтому ваша команда становится

~/.profile

, которая пытается выполнить .profile вызывающего пользователя (явно root в этот случай).

Даже если set $EDITOR обычно указывает на текстовый редактор execute - он не собирается магически брать следующую строку и вставлять ее в файл. В любом случае /root/.profile является личным .profile файлом для пользователя root - без помощи, если вы хотите изменить общесистемную среду.

Чтобы сделать общесистемное изменение, вы должны изменить либо /etc/profile, либо /etc/environment 1 - или (лучше) создать пользовательский файл в каталоге /etc/profile.d/, например

echo 'export MY_VAR="123"' >> /etc/profile.d/myvars

Ваш скрипт, конечно, должен быть запущен как root, например используя sudo

[1], обратите внимание, что если вы используете /etc/environment, удалите export (переменные в этом файле просто определяются как простые пары name=value),

1
ответ дан 22 May 2018 в 15:34
  • 1
    Он работал, но только после перезапуска ОС, есть ли способ обновить эту переменную без перезагрузки машины? Благодаря! – gog 12 January 2018 в 22:22
  • 2
    @gog не так хорошо, как я знаю - процессы наследуют свою среду, когда они запущены, я не знаю о каком-либо способе «push " новое значение для них – steeldriver 12 January 2018 в 22:31

Ошибка, которую вы получаете, вероятно, потому что EDITOR не задан - поэтому ваша команда становится

~/.profile

, которая пытается выполнить .profile вызывающего пользователя (явно root в этот случай).

Даже если set $EDITOR обычно указывает на текстовый редактор execute - он не собирается магически брать следующую строку и вставлять ее в файл. В любом случае /root/.profile является личным .profile файлом для пользователя root - без помощи, если вы хотите изменить общесистемную среду.

Чтобы сделать общесистемное изменение, вы должны изменить либо /etc/profile, либо /etc/environment 1 - или (лучше) создать пользовательский файл в каталоге /etc/profile.d/, например

echo 'export MY_VAR="123"' >> /etc/profile.d/myvars

Ваш скрипт, конечно, должен быть запущен как root, например используя sudo

[1], обратите внимание, что если вы используете /etc/environment, удалите export (переменные в этом файле просто определяются как простые пары name=value),

1
ответ дан 17 July 2018 в 23:13

Ошибка, которую вы получаете, вероятно, потому что EDITOR не задан - поэтому ваша команда становится

~/.profile

, которая пытается выполнить .profile вызывающего пользователя (явно root в этот случай).

Даже если set $EDITOR обычно указывает на текстовый редактор execute - он не собирается магически брать следующую строку и вставлять ее в файл. В любом случае /root/.profile является личным .profile файлом для пользователя root - без помощи, если вы хотите изменить общесистемную среду.

Чтобы сделать общесистемное изменение, вы должны изменить либо /etc/profile, либо /etc/environment 1 - или (лучше) создать пользовательский файл в каталоге /etc/profile.d/, например

echo 'export MY_VAR="123"' >> /etc/profile.d/myvars

Ваш скрипт, конечно, должен быть запущен как root, например используя sudo

[1], обратите внимание, что если вы используете /etc/environment, удалите export (переменные в этом файле просто определяются как простые пары name=value),

1
ответ дан 24 July 2018 в 13:45

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

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