码迷,mamicode.com
首页 > 系统相关 > 详细

shell模拟银行系统

时间:2019-06-30 20:38:14      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:com   文件   cas   pass   break   sleep   one   模拟银行系统   ===   

运用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

技术图片

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

技术图片

技术图片

 

技术图片

 

shell模拟银行系统

标签:com   文件   cas   pass   break   sleep   one   模拟银行系统   ===   

原文地址:https://www.cnblogs.com/MR-ws/p/11110978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!