SHELL 프로 그래 밍 연습 - 사용자 와 그룹 삭제 대량 생 성
reed 는 시스템 관리자 입 니 다. 한 교실 의 서버 에 선생님 과 학생 사용 자 를 추가 해 야 합 니 다. 수 동 으로 추가 하 는 것 은 너무 번 거 롭 습 니 다. bash 스 크 립 트 userctr. sh 를 만들어 서 사용 자 를 대량으로 추가 하고 삭제 하 십시오.선생님 아 이 디, 학생 아 이 디 와 학생 수 는 매개 변 수 를 사용 하여 제어 합 니 다.
userctr. sh 스 크 립 트 가 실 행 될 때 네 개의 인 자 를 포함 합 니 다.
bash userctr.sh 操作(add或者del)教师名 学生名前缀 学生数量
스 크 립 트 가 성공 적 으로 실 행 된 후 교사 사용자 1 명 과 학생 사용자 몇 명 을 만 들 고 다음 조건 을 만족 시 킵 니 다.
1) 학생 수 매개 변수, 매개 변수 범 위 는 1 ~ 10 입 니 다. 10 을 초과 하거나 정수 가 아 닌 경우 잘못 인쇄 된 parameter error 2) 학생 이름 접 두 사 는 문자열 입 니 다. 소문 자 만 포함 할 수 있 습 니 다. 그렇지 않 으 면 잘못 인쇄 된 parameter error, 접두사 뒤 에는 숫자 서열 3) 사용자 마다 무 작위 6 자리 비밀 번 호 를 설정 합 니 다.명령 을 추가 한 후 사용자 이름과 해당 하 는 암 호 를 출력 합 니 다 4) 사용자 이름 이 이미 존재 한다 면 기본적으로 이 사용 자 를 만 들 필요 가 없습니다.
스 크 립 트 를 실행 하 는 범례:
#添加一位叫reeeed教师,3位叫deeeer的学生
[root@reedoracle ~]# ./userctr.sh add reeeed deeeer 3
User [reeeed] create successfully.
reeeed:2bf168
User [deeeer1] create successfully.
deeeer1:39adcd
User [deeeer2] create successfully.
deeeer2:a12201
User [deeeer3] create successfully.
deeeer3:4088d2
#参数不正确时提示
[root@reedoracle ~]# ./userctr.sh add 123 321 11
Parameter error!
#输入不规范时的提示
[root@reedoracle ~]# ./userctr.sh add 123 321
--Usage:
./userctr.sh [add/del] [Teacher'sName] [Student'sName] [The number of Students]
ex.
./userctr.sh add teacher stu 3
--
add:useradd username
del:userdel username
[Teacher'sName]:teacher's name
[Student'sName]:student's name,just only the beginning of a lowercase letter
[The number of Students],only [1-10]
2. 어 려 운 점 과 어 려 운 점:
1. 입력 한 매개 변수 가 정확 하고 규범 적 인지 판단 해 야 합 니 다. 2. 여러 조건 판단 문 구 를 삽입 합 니 다. 3. 무 작위 로 비밀 번 호 를 생 성 합 니 다.
지식 포인트:
1. SHELL 의 if/for 문법 2. SHELL 인자 사용 3. 사용자 생 성
구체 적 인 실현:
[root@reedoracle ~]# cat userctr.sh
#!/bin/bash
#func:add or del user
#author:reed
. /etc/profile
UserCtr=$1
TeacherName=$2
StudentName=$3
StudentNumber=$4
Usage(){
cat<>/dev/null 2>&1
if [ $? -ne 0 ];then
useradd $2
TeacherPasswd=$(date|md5sum|cut -c 1-6)
echo $TeacherPasswd|passwd --stdin $2 >>/dev/null 2>&1
echo "User [$2] create successfully."
echo "$2:$TeacherPasswd"
else
echo "The user [$2] is exist."
fi
for ((num=1;num<=$4;num++));do
id ${3}${num} >>/dev/null 2>&1
if [ $? -ne 0 ];then
useradd ${3}${num}
StudentPasswd=$(echo $RANDOM|md5sum|cut -c 1-6)
echo $StudentPasswd|passwd --stdin ${3}${num} >>/dev/null 2>&1
echo "User [${3}${num}] create successfully."
echo "${3}${num}:$StudentPasswd"
else
echo "The user [${3}${num}] is exist."
fi
done
else
echo "Parameter error!"
exit 10000
fi
elif [ $1 == "del" ];then
echo "Please delete user manually."
else
echo "Parameter error!Please input [add] or [del]."
exit 10086
fi
else
Usage
fi
주: "del"사용자 가 삭제 하 는 원 리 는 사용 자 를 만 드 는 것 과 마찬가지 로 게 으 르 게 썼 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.