SUDO_COMMAND
é uma variável de ambiente definida por sudo
apenas no ambiente do processo iniciado por ela (e herdada por qualquer processo filho). Se você executar sudo some-command arg1 arg2
, SUDO_COMMAND
conterá o caminho absoluto para some-command
e arg1 arg2
. Se você executou sudo -s
ou sudo -i
, a variável será definida para o shell que foi iniciado. Em qualquer caso, você provavelmente não o verá fora de uma árvore de processos iniciada por sudo
.
Por exemplo:
$ sudo sh -c 'echo $SUDO_COMMAND'
/bin/sh -c echo $SUDO_COMMAND
Ou:
$ 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
Eu notei que a informação vem em ordem
Não sei qual comando você está usando, mas não é possível confiar na saída de set
, declare
, env
ou printenv
em alguma ordem.