구문 오류 예기치 않은 파일 끝 [닫기]

구문 오류 예기치 않은 파일 끝 [닫기]

사용자를 생성하고 이를 그룹에 할당할 수 있는 쉘 스크립트를 작성했지만 계속 오류가 발생합니다.line 19: syntax error: unexpected end to file

내가 뭘 잘못했나요? 이 문제를 해결하기 위해 코드를 재구성하는 데 도움을 줄 수 있는 사람이 있나요?

이것은 내 쉘 스크립트입니다.

#!/bin/bash
username="U"
group="G"
while [ $username"U" ] >/dev/null 2>&1;
read -p "Please input the username you would like to generate"
if
  id -U $username >/dev/null 2&1;
echo 'User already exists"
while [ $group >dev/null 2>&1; 

echo "group exists"

else
    groupadd $group
fi

답변1

이것은 당신이 사용할 수 있는 것입니다. 존재하지 않는 새로운 사용자가 생성될 때까지 루프에 남아 있습니다.

#!/usr/bin/env bash

anotherUser() {
   read -p "Add another user? [y/n]" yn
   if [[ $yn = *[yY]* ]]; then
      checkUser
   fi
   exit
}
checkUser() {
while :
   do
      read -p "Enter user: " userName
      if id $userName >/dev/null
         then echo "User exists"
         anotherUser
      else
         adduser "$userName"
         printf "User %s has been added\n" "$userName"
         exit
      fi
   done
}
checkUser

답변2

$?변수를 통해 변경 해야 합니다 . 마지막 명령의 반환 값을 저장합니다.

id -u $username > /dev/null 2>&1 ;
if [[ "$?" -eq 0 ]]; then
        echo "username already exists."

1과 같으면 존재하지 않는 것입니다.
그런데, 블록이 더러워졌습니다... 다음 링크를 사용하세요:
들여쓰기(조판)
또한 블록을 닫으십시오.

관련 정보