Существуют ли переменные среды UNIX длиннее четырех символов? - PullRequest
0 голосов
/ 02 февраля 2011

Я знаю, что есть $ USER, $ HOME, $ PATH и т. Д.

Ответы [ 8 ]

8 голосов
/ 02 февраля 2011

Есть много: DBUS_SESSION_BUS_ADDRESS, XAUTHORITY, GDM_LANG и т. Д. Вы можете просмотреть все переменные окружения с помощью команды env - введите ее в терминале.

Насколько я знаю, нет никаких ограничений на переменные среды, они могут быть любой длины, и что угодно может создать их и добавить в среду (используя, как вы, наверное, видели * 1004).Концептуально переменные среды действуют как «глобальные переменные», которые используются всеми программами, запущенными в терминале.

7 голосов
/ 02 февраля 2011

Err ... много?

$ env | cut -d = -f 1 | sort | uniq 
_
COLORFGBG
DBUS_SESSION_BUS_ADDRESS
DESKTOP_SESSION
DISPLAY
DM_CONTROL
EDITOR
GPG_AGENT_INFO
GS_LIB
GTK2_RC_FILES
GTK_RC_FILES
HISTCONTROL
HOME
KDE_FULL_SESSION
KDE_MULTIHEAD
KDE_SESSION_UID
KDE_SESSION_VERSION
KONSOLE_DBUS_SERVICE
KONSOLE_DBUS_SESSION
LANG
LANGUAGE
LESSCLOSE
LESSOPEN
LIBGL_DRIVERS_PATH
LOGNAME
LS_COLORS
OLDPWD
PATH
PROFILEHOME
PWD
QT_PLUGIN_PATH
SESSION_MANAGER
SHELL
SHLVL
SSH_AGENT_PID
SSH_AUTH_SOCK
TERM
USER
WINDOWID
WINDOWPATH
XCURSOR_THEME
XDG_DATA_DIRS
XDG_SESSION_COOKIE
XDM_MANAGED
3 голосов
/ 02 февраля 2011

Да, $SHELL - один из них, о котором я знаю.

Редактировать: см. эту страницу , чтобы узнать больше о них.

1 голос
/ 21 октября 2013

env | cut -d = -f 1 | grep -E "([A-Z _] {4,})"

Используйте эту команду

1 голос
/ 25 августа 2011

Каждая система настроена по-разному, поэтому вместо того, чтобы перечислять их все здесь, просто введите следующую команду, чтобы вывести их все в вашей системе:

set | sed 's/=.*//' | grep -v "^[A-Z_]\{4\}$"

Я бы использовал set вместо env, поскольку он имеет большую область видимости. Большинство системных переменных находятся в верхнем регистре, поэтому чтобы добавить это ограничение, добавьте дополнительный grep к конвейеру.

set | sed 's/=.*//' | grep "[A-Z_]" | grep -v "^[A-Z_]\{4\}$"
1 голос
/ 02 февраля 2011

Как насчет $DISPLAY и $LD_LIBRARY_PATH.

0 голосов
/ 02 февраля 2011

Пользовательские переменные среды не должны содержать до четырех символов (например, CLASSPATH)

0 голосов
/ 02 февраля 2011

$LD_LIBRARY_PATH и $LD_PRELOAD оба существуют для связи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...