2014-04-23 2 views
1

실행하기 전에 스크립트를 실행하는 사용자가 루트인지 확인하고 싶습니다. 그러나 그것은 효과가없는 것처럼 보입니다. 나는 현재 루트로 로그인되어 있지만, 생각하는 구문에 문제가 있습니다.bash 스크립트에서 루트가 있는지 확인하십시오.

if[[ $EUID -ne 0 ]]; 
then 
echo "Sorry, you are not root." 
exit 1 
else 
echo "You are root, script will continue." 
fi 
+0

스페이스 바 버그가 있습니다. @ user3553031의 대답을 참조하십시오. – jorgenkg

답변

3

if[ 사이에 공백이 필요합니다.

1

처럼 simething 없습니다 이유 :

usrname=$(whoami) 
if [ $usrname = "root" ] 
echo "Sorry, you are not root." 
exit 1 
else 
    echo "You are root, script will continue." 
fi 

나는 문제가 단지 if 문을 당신의 구문 생각하지만 :

  • 왜 대괄호
  • 왜 후 ;if? if[ 사이
  • 공백 , 따라서 if [

배시 구문에 매우 민감하다. 예를 들어 할당 연산자 (=) 사이의 공백은 허용되지 않습니다.

관련 문제