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
бути в певному порядку.