Une question bizarre, je sais. Voici le script:
echo $USER
Voici la commande que j'utilise pour l'exécuter:
sudo ./myscript.sh
En ce moment, il imprime "root" mais je veux qu'il imprime jon
, mon nom d'utilisateur. Existe-t-il un moyen de le faire en modifiant le script et non la commande?
command-line
bash
sudo
environment-variables
Jonathan
la source
la source
Réponses:
Utilisez la
SUDO_USER
variable d'environnement au lieu deUSER
.sudo
place le nom de l'utilisateur qui l'a exécuté dans laSUDO_USER
variable d'environnement:Vous pouvez donc simplement remplacer
$USER
par$SUDO_USER
dans votre script:Lectures complémentaires
man sudo
, dans la section "ENVIRONNEMENT":La page de manuel décrit également d'autres variables d'environnement associées définies par
sudo
qui peuvent être utiles, telles queSUDO_UID
etSUDO_GID
Obtenir $ USER dans le script shell lors de l'exécution avec sudo?
la source