상세 컨텐츠

본문 제목

Shell Script_function : 계정 일괄 생성/삭제 프로그램

리눅스(Linux)

by 주스로그 2024. 3. 21. 12:49

본문

728x90
반응형

해당 계정 일괄 생성/삭제 프로그램은 이전 포스팅 참조

2024.03.21 - [리눅스(Linux)] - Shell Script : 계정 일괄 생성/삭제 프로그램

 

해당 코드를 함수로 만들어 간소화해보자!

## 함수정의

function AA(){
        echo -n "생성할 계정명: ";read Aname
        echo -n "생성할 개수: ";read Acount
}
계정 생성 함수


function DD(){
        echo -n "삭제할 계정명: ";read Dname
        echo -n "삭제할 개수: ";read Dcount
}
계정 삭제 함수


function Add(){
        for (( i=1 ; i<=$Acount ; i++ ))
        do
                useradd $Aname$i
        done
}
계정 생성 과정 함수


function Del(){
        for (( i=1 ; i<=$Dcount ; i++ ))
        do
                userdel -r $Dname$i
        done
}

계정 삭제 과정 함수

 

이후 코드는 간략해진다!

if [ $REPLY -eq 1 ];then
        AA
elif [ $REPLY -eq 2 ];then
        DD
fi

case $REPLY in

  1)
        Add;;
  2)
        Del;;
  3)
        echo "프로그램을 종료합니다."
        exit;;
  *)
        echo "잘못 입력하셨습니다."
        exit;;
esac

 


실행해보기 : 유저 hoho를 3개 만들고, 삭제 해보자

함수 정의 이후에도 정상 동작확인!

더보기

최종 코드

#!/bin/bash
#filename : /root/usermake.sh

echo "****** 계정 일괄 생성/삭제 프로그램 *******"
echo "1. 계정 일괄 생성"
echo "2. 계정 일괄 삭제"
echo "3. 종료"
read -p "메뉴를 선택하세요(1~3): "

## 함수정의

function AA(){
        echo -n "생성할 계정명: ";read Aname
        echo -n "생성할 개수: ";read Acount
}

function DD(){
        echo -n "삭제할 계정명: ";read Dname
        echo -n "삭제할 개수: ";read Dcount
}

function Add(){
        for (( i=1 ; i<=$Acount ; i++ ))
        do
                useradd $Aname$i
        done
}

function Del(){
        for (( i=1 ; i<=$Dcount ; i++ ))
        do
                userdel -r $Dname$i
        done
}


if [ $REPLY -eq 1 ];then
        AA
elif [ $REPLY -eq 2 ];then
        DD
fi

case $REPLY in

  1)
        Add;;
  2)
        Del;;
  3)
        echo "프로그램을 종료합니다."
        exit;;

  *)
        echo "잘못 입력하셨습니다."
        exit;;
esac
728x90
반응형

'리눅스(Linux)' 카테고리의 다른 글

vi editor : 단축키  (1) 2024.09.30
disk partitioning  (0) 2024.09.25
Shell Script : 계정 일괄 생성/삭제 프로그램  (0) 2024.03.21
Shell Script : 파일 복사하기  (0) 2024.03.20
iptables mangle : ttl_set  (0) 2024.03.05

관련글 더보기