В настоящее время я изучаю основы Linux с Ubuntu, и есть небольшая работа, где мне нужно найти информацию о переменных среды. Я уже нашел информацию 6/7, но просто не могу найти SUDO_COMMAND
. Вот как выглядит список:
SHELL=/bin/bash
USER=student
SUDO_COMMAND=
PWD=/home
HOME=/home/student
LOGNAME=student
OLDPWD=/home/student
Я заметил, что информация поступает по порядку и SUDO_COMMAND
находится между пользователем и pwd. я где-то ошибся?
command-line
sudo
Кайл Круз
источник
источник
Ответы:
SUDO_COMMAND
переменная окружения, устанавливаемаяsudo
только в среде запущенного ею процесса (и наследуемой любыми дочерними процессами). Если вы запуститеsudo some-command arg1 arg2
, тоSUDO_COMMAND
будет содержать абсолютный путь кsome-command
, иarg1 arg2
. Если вы запустилиsudo -s
илиsudo -i
, то переменная будет установлена в оболочку, которая была запущена. В любом случае, вы, вероятно, не увидите его вне дерева процессов, запущенногоsudo
.Например:
Или:
Я не знаю , какую команду вы используете, но вы не можете полагаться на выходе
set
,declare
,env
илиprintenv
быть в определенном порядке.источник
sudo echo $SUDO_COMMAND
что можно использовать для создания бесконечного цикла… :(SUDO_COMMAND
Это переменная окружения , которая Набор в команду запуска от Судо .Как уже упоминалось @muru - если
sudo
выполнить новую оболочку - эта переменная окружения будет показана в этой новой оболочкеБольше информации
man sudo
предоставляет следующие данные:источник
SUDO_COMMAND
существует только в среде, которая была запущенаsudo
, если наSUDO_COMMAND
самом деле где/bin/ls
, то вы не сможете запустить оболочкуecho $SUDO_COMMAND
.