잔액이 고갈될 때까지(또는 잔액이 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)"