
残高が枯渇するまで(または残高が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)"