SUDO_COMMANDadalah variabel lingkungan yang ditetapkan oleh sudohanya di lingkungan proses yang dimulai olehnya (dan diwarisi oleh proses anak). Jika Anda menjalankan sudo some-command arg1 arg2, maka SUDO_COMMANDakan berisi path absolut ke some-command, dan arg1 arg2. Jika Anda menjalankan sudo -satau sudo -i, maka variabel akan ditetapkan ke shell yang dimulai. Bagaimanapun, Anda mungkin tidak akan melihatnya di luar pohon proses yang dimulai oleh sudo.
Sebagai contoh:
$ sudo sh -c 'echo $SUDO_COMMAND'
/bin/sh -c echo $SUDO_COMMAND
Atau:
$ 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
Saya perhatikan bahwa informasi datang secara berurutan
Aku tidak tahu mana perintah yang Anda gunakan, tetapi Anda tidak dapat bergantung pada output set, declare, envatau printenvberada di beberapa urutan.