Назад | Перейти на главную страницу

Использование HOSTNAME и CURRENT_USER в скриптах на Linux

Предположим, я хочу отредактировать /etc/profile:

PYTHONPATH = /home/CURRENT_USER/

  1. Как мне получить переменная что будет автоматически заливать текущего пользователя?
  2. Что о имя хоста?
  3. Разве это не переменные среды?

$USER обычно должен быть установлен на текущего пользователя, и $HOSTNAME к текущему имени хоста. Если нет, вы также можете получить их из вывода whoami и hostname

Кроме того, домашний каталог пользователя не обязательно находится в /home/[username]. Вы должны использовать значение $HOME вместо.

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

bash$ set

Помните о чувствительности к регистру, для имени хоста вам понадобятся $ HOSTNAME и $ USER.

bash$ echo $USER
sparks
bash$ echo $HOSTNAME
servername

Другой подход - добавить вызов в sys.addsitedir в sitecustomize.py а не PYTHONPATH.

Однако, начиная с Python 2.6, вам, вероятно, тоже не нужно этого делать, потому что /home/$USER/.local/lib/python2.6/site-packages автоматически добавляется к sys.path. Это хороший выбор стандартного места для размещения пользовательских модулей / пакетов; вам бы не хотелось добавлять сам домашний каталог в качестве пути к модулю, поскольку он содержит все виды вещей, не являющихся модулями, что может затруднить импорт.

Видеть PEP370 для подробностей.

В python вызовите os.uname (), чтобы получить имя хоста (и другие данные в массиве).