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
จะเป็นในการสั่งซื้อบางส่วน