У меня проблема при использовании команды «экспорт»

12

Когда я ставлю sudo "export PROXY_LOCAL_NET_IP = 10.113.35.108", я получаю следующую ошибку:

sudo: export: command not found

Что я должен сделать, чтобы решить эту проблему?

Dady
источник
Это работает без sudo?
user128285
Возможно, вы не должны использовать кавычки в команде.
user128285
экспорт не будет работать с рыбой, по какой-либо причине
Раффаэль
Как сохранить переменные окружения при использовании sudo: stackoverflow.com/questions/8633461/…
Марк Фокс

Ответы:

9

Вы не можете использовать встроенные оболочки с sudo. Только команда, соответствующая действительным файлам, будет выполнена через sudo. Правильный синтаксис для sudo:sudo [options] [filename]

Export - это внутренняя (встроенная) команда оболочки Bash и, возможно, некоторая другая.

Также обратите внимание, что нет смысла выполнять действие с exportпомощью via sudo, оно должно выполняться под вашим идентификатором пользователя, чтобы быть применимым к вашей оболочке и ее дочерним процессам.

Если вы переключитесь на пользователя root, чтобы сделать это, вам придется выполнить оставшуюся часть вашей операции как root: это не рекомендуется . Потому что если вы выйдете из корневой оболочки, выполненное назначение exportбудет потеряно.

Benoit
источник
7

Станьте пользователем root sudo -sи паролем.
Затем введите команду без sudo: export PROXY_LOCAL_NET_IP = 10.113.35.108`

prophecy201
источник
4

Вы можете использовать параметр sudo -E для использования экспортированной переменной в команде sudo

Следующий вопрос stackoverflow содержит некоторые дополнительные сведения о том, как использовать переменную окружения с sudo

user596851
источник