変数値の残高の変更

変数値の残高の変更

私はUnixを練習し、自分で教えながら現金支払い機を作るための基本的なコーディングをしました。これまで私は次のことを行いましたが、最後の障害物に関する指示が必要です。

この値を更新する方法が詰まっています。たとえば、ユーザーがオプションを選択した場合: - 1 = 5 2 = 10 3 = 20 4 = 50

これは簡単だと思いました。expr $bal1 +5

それとも、awkコマンドとsedコマンドを使用して現在の値とユーザーが入力した値を抽出する必要がありますか?

実際には1つのファイルにコードがあります。

#!/bin/bash
#This is an automated cash machine

##########################
#Created Variables
##########################
user1=1234
user2=0000
user3=0124
name1=Mike
name1=John
name2=Brad
name3=Sophie
bal1=0
bal2=0
bal3=0
###################################
#Created functions add_funds
###################################

main_screen ()
{
    echo "####################################"
    echo "1.\tAdd Funds"
    echo "2.\tWithdraw Funds"
    echo "3.\tCheck Balance"
    echo "4.\tExit"
    echo "####################################"

    echo "Enter Option:\c"
    read number

    if [ $number = 1 ]
    then
        add_funds

    elif [ $number = 2 ]
    then
        clear
        echo "withdraw Funds"

    elif [ $number = 3 ]
    then
        clear 
        echo "Show balance"

    elif [ $number = 4 ]
    then
        exit

    else   
        echo "wrong selection, try again"
        sleep 1
        clear 
        while [ $number -gt 4 ]; do
            main_screen
        done
    fi
}

add_funds ()
{
    clear
    echo "How much would you like to add?"
    echo "select one of the following options"

    echo "1.\t£5.00"
    echo "2.\t£10.00"
    echo "3.\t£20.00"
    echo "4.\t£50.00"

    echo "Enter Option:\c"

    read amount

    if [ $amount = 1 ]
    then
        $((`expr $bal1+5`)) #this does not work
        echo "you have added £5.00"
        echo "ACCOUNT UPDATED $bal1"

    elif [ $amount = 2 ]
    then
        echo "you have added £10.00"
        echo "ACCOUNT UPDATED"
    elif [ $amount = 3 ]
    then
        echo "you have added £20.00"
        echo "ACCOUNT UPDATED"
    elif [ $amount = 4 ]
    then
        echo "you have added £50.00"
        echo "ACCOUNT UPDATED"
    else
        echo "wrong selection, try again"
        sleep 1
        while [ $amount -gt 4 ]; do
            add_funds
        done
    fi
}

################################
# MAIN CODE
################################

clear
echo "***********************"
echo "   CASH DESPENSER      "
echo "***********************"

echo "Enter Pin:\c"

read pin

if [ $pin = $user1 ]
then
    clear
    echo "Welcome $name1, How can I assist you"
    main_screen
elif [ $pin = $user2 ]
then
    clear
    echo "Welcome $name2, How can I assist you"
    main_screen
elif [ $pin = $user3 ]
then
    clear
    echo "Welcome $name3, how can I assist you"
    main_screen
else
    echo "Incorrect pin user, try again"
fi

答え1

上記の説明で説明したように5を追加するには、bal1次のようにします。

bal1=$((bal1 + 5))

たとえば、

$ x=42
$ echo $x
42
$ x=$((x + 5))
$ echo $x
47
$

関連情報