如何从档案中连续提取20美元

如何从档案中连续提取20美元

如何编写一个脚本,连续从帐户中提取 20 美元,直到余额耗尽(或余额少于 20 美元)。完成后,我必须向用户回显他们收到了多少张 20 美元的钞票。我必须使用参数来指定帐户文件。

这就是我到目前为止在脚本中的内容

file1=$(cat $1)
while (( file1  >= 20 ))
do
echo $(($file1 - 20)) > $1
done

如果有人可以提供帮助那就太好了!谢谢!

答案1

您的脚本即将完成。

您唯一需要做的就是维护一个计数器来计算提款。

正如人们在评论中建议的那样,您应该为变量指定易于理解的名称。

balance=$(cat "$1")
count=0

while (( balance  >= 20 ))
do

    (( ccount++ ))
    echo $(( balance -= 20)) > "$1"
    balance=$(cat "$1")

done
printf '%d withdrawals\n' $count 

如果你不想每一步都更新文件,那就更简单了;

balance=$(cat "$1")
count=0

while (( balance  >= 20 ))
do

    (( ccount++ ))
    (( balance -= 20))

done
printf '%d\n' $balance > "$1"
printf '%d withdrawals\n' $count 

答案2

或者.....如果您想保留交易记录,只需更新帐户并计算行数 - 1(原始余额)

balance=$(cat account)
while (( balance >= 20 )); do 
    (( balance -= 20 ))
    echo $balance >> account;
done
echo "$(( $(cat account | wc -l)-1 )) transactions were made and your balance is \$$(tail -n 1 account)"

相关内容