zoukankan      html  css  js  c++  java
  • shell模拟银行系统

    运用awk if语句 函数调用 case语句 死循环。

    1.先创建个用户管理文件(info.txt)

    me      passwd  money
    ws      123     30000
    qq      456     30000

    2.创建银行系统(bank.sh)

    #!/bin/bash
    
    menu1="===============
    =    1.登录   =
    =    2.退出   =
    ===============
    请选择您的操作[1|2]: "
    
    menu2="++++++++++++++++
    +++  1.查询  +++
    +++  2.存款  +++
    +++  3.取款  +++
    +++  4.转账  +++
    +++  5.退出  +++
    ++++++++++++++++
    请选择您的操作[1|2|3|4|5]: "
    
    
    login(){
        read -p "输入您的帐号: " account
        read -p "输入您的密码: " password
        passwd=`awk -v account=$account '{if($1==account)print $2}' ./info.txt`
        if [ -z "$passwd" ]    查看密码是否为空.
        then
            echo "帐号密码错误"
        elif [ $password == $passwd ]
        then
            echo "登录中....稍后....."
            sleep 1
            echo "登录成功"
            sleep 1
            clear
        else
            echo "帐号密码错误"
        fi
    }
    
    query(){
        money=`awk -v account=$account '{if($1==account)print $3}' ./info.txt`
        echo "当前账户余额: $money"
    }
    
    storemoney(){
        read -p "请输入存入金额: " var
        money=`awk -v account=$account '{if($1==account)print $3}' ./info.txt`
        all_money=$(($money+$var))
        sed -i "/$account/s/$money/$all_money/" ./info.txt
        query
    }
    
    getmoney(){
        read -p "请输入存入金额: " var
        money=`awk -v account=$account '{if($1==account)print $3}' ./info.txt`
        all_money=$(($money-$var))
        sed -i "/$account/s/$money/$all_money/" ./info.txt
        query
    
    }
    
    forwardmoney(){
        read -p "输入转账帐号: " new_name
        if awk -v account=$new_name '{if($1==new_name)print $1}' ./info.txt&>/dev/null
        then
            read -p "输入转账金额: " for_money
            money1=`awk -v account=$account '{if($1==account)print $3}' ./info.txt`
            if [ $money1 -lt $for_money ]
            then
                echo "余额不足!"
            else 
                all_money1=$(($money1-$for_money))
                sed -i "/$account/s/$money1/$all_money1/" ./info.txt
                money2=`awk -v account=$new_name '{if($1==account)print $3}' ./info.txt`
                all_money2=$(($money2+$for_money))
                sed -i "/$new_name/s/$money2/$all_money2/" ./info.txt
                echo "转账成功"
                query
            fi
        else
            echo "转账帐号不存在!请确认"
        fi
    }
    
    while true
    do
        clear
        read -p "$menu1" num1
        if [ $num1 -eq 1 ]
        then
            login
            while true
            do
                read -p "$menu2" num2
                case $num2 in
                1)
                    query
                ;;
                2)
                    storemoney
                ;;
                3)
                    getmoney
                ;;
                4)
                    forwardmoney
                ;;
                5)
                    break
                ;;
                *)
                    echo "请选择正确编号"
                ;;
                esac
            done
        elif [ $num1 -eq 2 ]
        then
            exit
        else
            echo "选择正确的编号"
        fi
    done

    登陆成功之后进入当前界面

  • 相关阅读:
    Linux -- 查看是否安装了指定的包
    linux -- 部署java服务器(1) linux安装jdk
    spring boot -- 接收文件接口
    vue3 --相对于vue2的改变T1档次
    243交换输出
    24416进制的简单运算
    7街区最短路径问题
    206矩形的个数
    33蛇形填数
    273字母小游戏
  • 原文地址:https://www.cnblogs.com/MR-ws/p/11110978.html
Copyright © 2011-2022 走看看