Linux中用shell脚本实现用户注册,登录,删除特点

一、说明

Linux中用shell脚本实现用户注册,登录,删除特点:用户和密码是单另储存在一个文件中,程序结束后,下次登录只要存储用denglu.sh   主目录

denglu1.sh   注册功能模块

denglu2.sh   登录功能模块

denglu3.sh   删除单个用户功能模块

name_passwd  储存用户密码文件

name_save     储存用户名文件户的两个文件不删除,可直接登录

二、代码

1、联合

#联合
echo 请问您之前有注册过本程序的用户么?
echo 若有请输入Y  若没有请输入N 
echo 若您想直接退出本程序请随意输入任意一个字符
read choice

if test $choice = Y
then
	./denglu2.sh
elif test $choice = N
then
	./denglu1.sh
fi

2、注册

#注册
name=('')
passwd=('')

echo 请注意一旦新注册用户
echo 之前已注册用会会全部删除!!!!
echo 若想继续请输入Y 退出注册程序请输入N
read choice
if test $choice = N
then
	break
fi
echo "" > name_save
echo "" > name_passwd
echo 请问您想注册几个用户
read num

for (( i = 0 ; $i < $num ; i=$i+1))
do 
	let n=$i+1
	echo 请输入第 $n 个用户的用户名
	read nam
	name[$i]=$nam
	echo ${name[$i]} >> name_save
	echo 请输入第 $n 个用户的密码
	read nam
	passwd[$i]=$nam 
	echo ${passwd[$i]} >> name_passwd
done
echo 注册完成请重新登录

./denglu2.sh

3、登录

#登录 
name=('')
mapfile -t -s 1 name < name_save 

passwd=('')
mapfile -t -s 1 passwd < name_passwd

echo 请输入您的用户名
read nam
for (( i=0 ; $i < ${#name[*]} ; i=$i+1 ))
do 
	n=3 #密码输入次数计数
	if test $nam = ${name[$i]} 
	then
		for (( ; n != -1 ; ))
		do
			echo 请输入密码
			read mi
			if test $mi = ${passwd[$i]}
			then
				echo 已成功登录 ${name[$i]} 用户
				let z=1
				break
			else
				echo 密码输入错误
				echo 您还有 $n 次输入机会
				let n=$n-1
			fi
		done
		if test $n = -1
		then
			let z=0
		    echo 请问您是否需要返回主目录
			echo 需要请输入Y  不需要请输入N
			echo 如果需要推出本程序 请随意输入一个字符
			read choice
			if test $choice = Y
			then
				./denglu.sh
			elif test $choice = N
			then
				echo 请重新登录
				./denglu2.sh
			else
				break
			fi
		fi
		break
	fi
done

	if test $i = ${#name[*]}	
	then
		echo 请问您是否需要返回主目录
		echo 需要请输入Y  不需要请输入N
		echo 如果需要推出本程序 请随意输入一个字符
		read choice
		if test $choice = Y
		then
			./denglu.sh
		elif test $choice = N
		then
			echo 请重新登录
			./denglu2.sh
		fi
	fi
if test $z = 1
then
	echo 请问您需要删除某个用户么?
	echo 是请输入Y 否请输入N 
	echo 若需要推出登录返回主页面请随意输入一个字符
	read choice
	if test $choice = Y
	then
		./denglu3.sh
	elif test $choice != N  
	then	
		./denglu.sh
	#else
	#留下的接口和增添功能使用
	fi
fi

4、用户删除

#用户删除
name=('')
mapfile  -t -s 1 name < name_save

passwd=('')
mapfile  -t -s 1 passwd < name_passwd

num=${#name[*]}

echo 目前有以下这 $num 个用户
for ((i = 0 ; i < $num ; i=$i+1 ))
do 
	let n=$i+1
	echo 这是第 $n 个用户
	echo ${name[i]}
done

echo 请问您想删除第几个用户
read man  

echo "" > name_save
echo "" > name_passwd

name1=('')
passwd1=('')

u=0
let man=$man-1

for (( i = 0 ; i < $num ; i=$i+1 ))
do 
	if test $i != $man
	then
		name1[u]=${name[$i]}
		echo "${name1[$u]}" >> name_save
		passwd1[u]=${passwd[$i]}
		echo "${passwd1[$u]}" >> name_passwd
		let u=$u+1
	else
		continue
	fi
done

echo 目前的用户还有 $u 个,分别是
for (( i = 0 ; $i < n; i=i+1 ))
do
	echo ${name1[$i]}
done

echo  删除成功请重新登录!
./denglu2.sh

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

x陌北x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值