如何编写一个脚本,连续从帐户中提取 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)"