【Shell 脚本编程-05 编程实战】

shell脚本综合练习题:模拟用户登陆程序:

1,给用户一个选择菜单:根据选择执行菜单功能:

(1)用户登录(2)用户注册(3)用户删除(4)退出登录

2,选择用户登陆以后

(1)让用户输入账号,验证账号是否正确

(2)让用户输入密码,验证密码是否正确

(3)如果账户密码都正确,登陆成功,输出一个登陆成功的话,自动停止脚本

(4)如果账户输入错误,让用户继续输入账户信息。

(5)如果账户正确,密码输入错误,那么同一个用户的密码,允许用户最多输入错3次。3次之后,账户锁定。锁定以后,账户不能登录

(6)被锁定账户不能登录,但是其他正常账户仍旧可以登录。

3,整个脚本过程,只有两个地方可以退出脚本。

(1)用户选择菜单里,执行退出登录

(2)用户登录成功以后,自动退出脚本

重点:

decide 选择命令:可使指令进行交互输出,可使用选项,而不是执行一次就关闭

clear 清屏,执行后会把执行脚本的显示情况清空

sleep暂停,语法:sleep 秒数  例如:sleep 1.5 即执行到这时会暂停1.5

User1="用户名"   创建用户名,可同时创建多个

Passwd1="密码"   创建对应用户名的密码,几个用户名就可以创建几个密码

Lock="" 创建初期为空的锁定变量,

Lock=$Lock" 用户名把此用户放进锁定名单,就不能再登录了

echo "$Lock"  检验用户是否被锁定,显示哪个用户名那个就是被锁定的

return:跳出整个循环回到最初调用它的位置。区别于exit/coninue/break

编写步骤:①vim test.sh  

#!/bin/bash   提示:下边“ ”是linux中的缩进符,实际不输出具体字符)

User1="yunjisuan"

User2="benet"

Passwd1="111111"

Passwd2="222222"

Lock=""

function Title(){

cat << FOF

************************

*        1,用户登录        *

*        2,用户注册        *

*        3,用户删除        *

*        4,退出登录       *

************************

FOF

}

function Login(){

   while :

   do

      read -p "请输入用户名:" User

      echo "$Lock" | egrep -w "$User" &>/dev/null

          if [ $? -eq 0 ];then

          echo "$User已锁定,请用其他用户登录"             

                       return

      fi

           if [ $User == $User1 -o $User == $User2 ];then              

               for i in 3 2 1

          do

             read -p "请输入密码:" Passwd (-P前加-s输密码时密码不可见)

             if [ $User == $User1 -a $Passwd == $Passwd1 ];then

                echo "$User登录成功"

                exit

             elif [ $User == $User2 -a $Passwd == $Passwd2 ];then

                echo "$User登陆成功"

                exit

             else

                echo "密码输入错误,您还有$((i-1))次机会,请重新输入"

             fi

          done

          Lock=$Lock" $User"

          echo "$User已输入错误3次,账户锁定"

          return

      else

          echo "账户输入错误,请重新输入"

      fi

   done  

}

function Zhuce(){

   echo "用户注册"     

}

function Shanchu(){

   echo "用户删除"

}

function Exit(){

   echo "退出登录"

   exit 0

}

while :

do

   clear

   Title

   read -p "请输入你的选择:" decide

   case $decide in

      1 )

          Login

          ;;

      2 )

          Zhuce

          ;;

      3 )

          Shanchu

          ;;

      4 )

          Exit

          ;;

      * )

          echo "输入错误,请重新输入"

   esac

   sleep 1.5

done                                                        ... 保存退出

sh test.sh    执行后可进行交互指令

(目前仅编写了1)用户登录(4)退出登录 这二个功能,若需要2)用户注册(3)用户删除 这二项功能,须在脚本中增加这儿方面的内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值