SUDO_COMMAND
переменная окружения, устанавливаемая sudo
только в среде запущенного ею процесса (и наследуемой любыми дочерними процессами). Если вы запустите sudo some-command arg1 arg2
, то SUDO_COMMAND
будет содержать абсолютный путь к some-command
, и arg1 arg2
. Если вы запустили sudo -s
или sudo -i
, то переменная будет установлена в оболочку, которая была запущена. В любом случае, вы, вероятно, не увидите его вне дерева процессов, запущенного sudo
.
Например:
$ sudo sh -c 'echo $SUDO_COMMAND'
/bin/sh -c echo $SUDO_COMMAND
Или:
$ sudo env
HOME=/home/muru
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
TERM=xterm-256color
LANG=en_US.UTF-8
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
MAIL=/var/mail/root
LOGNAME=root
USER=root
USERNAME=root
SHELL=/bin/bash
SUDO_COMMAND=/usr/bin/env
SUDO_USER=muru
SUDO_UID=1000
SUDO_GID=1000
Я заметил, что информация приходит в порядок
Я не знаю , какую команду вы используете, но вы не можете полагаться на выходе set
, declare
, env
или printenv
быть в определенном порядке.