Una pregunta extraña, lo sé. Aquí está el guión:
echo $USER
Aquí está el comando que uso para ejecutarlo:
sudo ./myscript.sh
Ahora mismo imprime "root" pero quiero que imprima jon
, mi nombre de usuario. ¿Hay alguna manera de hacerlo cambiando el script y no el comando?
command-line
bash
sudo
environment-variables
Jonathan
fuente
fuente
Respuestas:
Use la
SUDO_USER
variable de entorno en lugar deUSER
.sudo
coloca el nombre del usuario que lo ejecutó en laSUDO_USER
variable de entorno:Entonces, simplemente puede reemplazar
$USER
con$SUDO_USER
en su script:Otras lecturas
man sudo
, en la sección "MEDIO AMBIENTE":La página de manual también describe algunas otras variables de entorno relacionadas definidas por
sudo
eso que pueden ser útiles, comoSUDO_UID
ySUDO_GID
¿Obtiene $ USER dentro del script de shell cuando se ejecuta con sudo?
fuente