Voglio creare uno script bash che deve essere eseguito con sudo ma dovrebbe tenere conto del nome dell'utente non sudo che lo ha eseguito. Quindi, se l'utente bobesegue, sudo ./myscript.shvorrei myscript.shsapere che è bobstato colui che l'ha eseguito.
Diamo un'occhiata dentro myscript.sh:
USER=$(whoami)
# Do something that takes into account the username.
Come posso sapere il nome dell'utente che ha generato il processo? Più specificamente, cosa dovrei usare invece di whoamiottenere bobe no root?
#!/usr/bin/env bashsui miei script bash.
sho qualcos'altro.
USER=$(whoami). Si noti cheUSEResiste già come variabile interna della shell. Inoltre, se è uno script bash, non eseguirlo usandosh, che ha solo un sottoinsieme di funzionalità compatibili con POSIX.