첫 번째 질문 > /etc/group:

첫 번째 질문 > /etc/group:

나는 bash 스크립트를 작성 중입니다. 사용자를 추가하면 통신 권한이 거부되지만 사용자가 생성됩니다. Bash에서 이 오류를 제거하는 방법은 무엇입니까?

function create() {
  echo "name of group:"
  read turtles
  if [[ -n $turtles ]] && id $turtles > /etc/group 2>&1; then
    echo "This group has already exists"
    sleep $delay_time && exit
  else
    sudo groupadd $turtles && echo "Group has been added"
    sleep $delay_time
  fi
}

터미널의 메시지는 다음과 같습니다.

./myname: line 78: /etc/group Permission denied
Group has been added

이 오류를 해결하도록 도와주세요.

답변1

groupadd매뉴얼 페이지에는 다음과 같이 나와 있습니다.

Exit Values
The groupadd command exits with the following values:

0 success
2 invalid command syntax
3 invalid argument to option
4 GID not unique (when -o not used)
9 group name not unique
10 can't update group file

그룹 이름이 이미 존재하는 경우 9를 반환합니다(groupadd: 그룹 'name'이 이미 존재함).

따라서 귀하의 스크립트는

function create() {
    echo "name of group:"
    read turtles
    sudo groupadd "$turtles" && echo "group $turtles created successfully..."
    sleep $delay_time
}

답변2

첫 번째 질문 > /etc/group:

  • 직접 작성하지 말고 /etc/groupaddgroup을 사용하세요.
  • 사용하면 안 됩니다 >. 파일이 잘립니다.

다른 것이라면

else술어에 오류가 있으면 절에 적용됩니다. 예를 들어 리디렉션 내에서 파일을 열지 못하면 else 분기가 실행됩니다.

sleep $delay_time && exit

  • 잠을 잘 필요가 없습니다.
  • 종료할 필요 없이 바로 다음으로 점프합니다.fi
  • 실패 &&하면 sleep실행 exit되지 않습니다.

turtles

  • 문학적 프로그래밍: 변수 이름은 코드를 명확하게 만들지 않습니다.

그룹 이름:

  • 문학적 프로그래밍: 이는 사용자에게 명확한 질문이 아닙니다.

관련 정보