Bashscript | 5

명상록·2023년 3월 2일
0

shell script

목록 보기
1/5

이번 포스팅은 함수를 사용하는 법에 대하여 지금껏 배운 걸 적용한 한 가지의 예시로 스크립트 기초 시리즈를 마무리하려고 합니다. 예시가 적은 이유는 필자의 실력이 초급의 실력밖에 이루지 못한 이유겠습니다.

훗날 성장하여 실제로 유용한 스크립트를 짤 수 있을 때 응용 시리즈 또한 작성해보도록 하겠습니다.


다양한 메뉴를 지정

#!/usr/bin/bash


create_user()
{
	while :
	do
		read -p "Enter user name:" user
		if id $user &> /etc/null 
		then
			echo "User already exist...(try again with another name)"
		else
			useradd $user
			echo "$user created successfully"
			return 0
		fi
	done
}


set_pass()
{
	read -p "enter user_name:" user
	read -p "enter passwords:" password	
	echo "$password" | passwd --stdin $user 


}


view()
{
	users=$(awk -F: '$7=="/bin/bash" { print $1}' /etc/passwd)
	for user in $users
	do
		echo "User: $user , $(id $user | cut -d " " -f 1)"
	done
}


lock()
{
	while :
	do
		read -p "Enter your user_name to lock password:" user
		if [ -z $user ]
		then
			echo "Username can't be empty, please enter user_name..."
		else
			if id $user &> /etc/null
			then
				passwd -l $user
			        echo "successfully done...."	
				return 0
			else
				echo "provide valid user_name, user $user does not exist"
			fi
		fi
	done
}


backup()
{
	read -p "Enter user_name: " user
	echo "searching for home directory of $user"
	homedir=$(grep ${user}: /etc/passwd | cut -d ":" -f 6)
	echo "Home directory for $user is $homedir "
	echo "creating backup file (.tar).."
	ts=$(date +%F)
	tar -cf ${user}-${ts}.tar $homedir
	echo "$user backup success... "
	return 0
}

while :
do
	echo "
	      1. Create new user 
	      2. Set password 
	      3. Lock Password 
	      4. Create user backup 
	      5. View user-id
	      6. exit"
        read -p "Enter your choice:" choice


	case $choice in 
		1) create_user ;;
		2) set_pass
		   echo "Password successfully updated.....";;
		3) lock ;;
		4) backup ;;
		5) view ;;
		6) echo "ThankYou, have a nice day...."
		   exit 1 ;;
		*) echo "invalid input...";;
	esac	
	sleep 4
	clear
done

profile
등불은 꺼질 때까지 계속해서 환하게 빛을 비춘다.

0개의 댓글