로그인한 사용자의 이름을 올바르게 내보내는 방법은 무엇입니까?

로그인한 사용자의 이름을 올바르게 내보내는 방법은 무엇입니까?

여기에 다음 스크립트가 있습니다.

#!/bin/bash
#some initial variables
DLURL=https://raw.github.com/horvan/drubuntu/master
DIRURL=/opt/.drubuntu
#Get files to run the installation
wget -O $DIRURL/install.sh $DLURL/scripts/install/install.sh > /dev/null 2>&1
wget -O $DIRURL/functions.sh $DLURL/scripts/install/functions.sh > /dev/null 2>&1
wget -O $DIRURL/filetemplates.sh $DLURL/scripts/install/filetemplates.sh > /dev/null 2>&1
export nameofuser=`echo $USER`
.install.sh
sudo bash "$DIRURL"/install.sh 2> errors.txt

실행 후의 값은 $nameofuser사용자 이름과 같은 것이 아니지만root.

로그인한 사용자의 이름이 일치하는지 어떻게 확인합니까?

답변1

사용

export nameofuser=`who am i | awk '{print $1}'`

 또는 

export nameofuser=`logname`

sudo 등을 사용하여 스크립트를 호출하면 $USER가 변경될 수 있기 때문입니다.

https://stackoverflow.com/questions/4598001/how-do-you-find-the-original-user-through-multiple-sudo-and-su-commands

관련 정보