アーカイブから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)"

関連情報