Dziwne pytanie, wiem. Oto skrypt:
echo $USER
Oto polecenie, którego używam do uruchomienia:
sudo ./myscript.sh
W tej chwili wypisuje „root”, ale chcę, żeby wydrukował jon
moją nazwę użytkownika. Czy można to zrobić, zmieniając skrypt, a nie polecenie?
command-line
bash
sudo
environment-variables
Jonathan
źródło
źródło
Odpowiedzi:
SUDO_USER
Zamiast tego użyj zmiennej środowiskowejUSER
.sudo
umieszcza nazwę użytkownika, który uruchomił ją wSUDO_USER
zmiennej środowiskowej:Tak więc można po prostu wymienić
$USER
się$SUDO_USER
w skrypcie:Dalsza lektura
man sudo
, w sekcji „ŚRODOWISKO”:Strona man opisuje także inne powiązane zmienne środowiskowe zdefiniowane przez to,
sudo
które mogą się przydać, takie jakSUDO_UID
iSUDO_GID
Dostajesz $ USER do skryptu powłoki podczas pracy z sudo?
źródło