나는 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/group
addgroup을 사용하세요. - 사용하면 안 됩니다
>
. 파일이 잘립니다.
다른 것이라면
else
술어에 오류가 있으면 절에 적용됩니다. 예를 들어 리디렉션 내에서 파일을 열지 못하면 else 분기가 실행됩니다.
sleep $delay_time && exit
- 잠을 잘 필요가 없습니다.
- 종료할 필요 없이 바로 다음으로 점프합니다.
fi
- 실패
&&
하면sleep
실행exit
되지 않습니다.
turtles
- 문학적 프로그래밍: 변수 이름은 코드를 명확하게 만들지 않습니다.
그룹 이름:
- 문학적 프로그래밍: 이는 사용자에게 명확한 질문이 아닙니다.