Obecnie uczę się podstaw Linuxa z Ubuntu i jest trochę aktywności, w której muszę znaleźć informacje o zmiennych środowiskowych. Znalazłem już informacje 6/7, ale po prostu nie mogę znaleźć SUDO_COMMAND
. tak wygląda lista:
SHELL=/bin/bash
USER=student
SUDO_COMMAND=
PWD=/home
HOME=/home/student
LOGNAME=student
OLDPWD=/home/student
Zauważyłem, że informacje są uporządkowane i SUDO_COMMAND
znajdują się między użytkownikiem a pwd. czy gdzieś popełniłem błąd?
command-line
sudo
Kyle Cruz
źródło
źródło
Odpowiedzi:
SUDO_COMMAND
jest zmienną środowiskową ustawianą przezsudo
środowisko uruchomionego przez niego procesu (i dziedziczoną przez wszelkie procesy potomne). Jeśli uruchomiszsudo some-command arg1 arg2
,SUDO_COMMAND
będzie zawierać bezwzględną ścieżkę dosome-command
iarg1 arg2
. Jeśli uruchomiłeśsudo -s
lubsudo -i
, wówczas zmienna zostanie ustawiona na powłokę, która została uruchomiona. W każdym razie prawdopodobnie nie zobaczysz go poza drzewem procesów uruchomionym przezsudo
.Na przykład:
Lub:
Nie wiem, który dowodzić używasz, ale nie można polegać na wyjściu
set
,declare
,env
lubprintenv
być w pewnym porządku.źródło
sudo echo $SUDO_COMMAND
można go użyć do stworzenia pętli bezokolicznikowej… :(SUDO_COMMAND
Jest zmienna, która Zestaw do komendy prowadzonym przez sudo .Jak wspomniano @muru - jeśli
sudo
uruchomisz nową powłokę - ta zmienna środowiskowa zostanie pokazana w tej nowej powłoceWięcej informacji
man sudo
zawiera następujące szczegóły:źródło
SUDO_COMMAND
istnieje tylko w środowisku uruchomionym przezsudo
, jeśliSUDO_COMMAND
faktycznie gdzie/bin/ls
, to nie powinieneś uruchomić powłokiecho $SUDO_COMMAND
.