사용자를 생성하고 이를 그룹에 할당할 수 있는 쉘 스크립트를 작성했지만 계속 오류가 발생합니다.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과 같으면 존재하지 않는 것입니다.
그런데, 블록이 더러워졌습니다... 다음 링크를 사용하세요:
들여쓰기(조판)
또한 블록을 닫으십시오.