1

簡単なアカウント スクリプトを bash で作成しましたが、浮動小数点値を表示する標準的な方法がわかりませんでした。これは awk を使用した最適なソリューションですか? 残高も 0.00 を出力していますが、何かを含めるのを忘れていませんか?

#!/bin/bash

function printBalance()
{
    echo | awk 'BEGIN { printf "\nCurrent balance: %.2f\n", balance }'
    sleep 1
}

function makeWithdraw()
{
    echo -en "\nWithdraw an amount: "
    read deposit

    if [ "$withdraw" -gt "$balance" ]; then
      echo -en "\nInsufficient funds"
      sleep 1
    else
      balance=$(( balance - withdraw ))
    fi
}

balance=$((RANDOM%100+1))

# code continues...
4

3 に答える 3

3

bash の組み込みprintfコマンドを使用するだけです。

$ printf '%.2f\n' 123.456
123.46

また、複雑なものprintfではなく、使用することをお勧めします。さまざまなシェル内に、個別のプログラムとしてecho複数のバージョンの があります。echo同じことが にも当てはまりますがprintf、その動作ははるかに一貫しています。

たとえば、

echo -en "\nWithdraw an amount: "

あなたが使用することができます:

printf '\nWithdraw an amount: '

または、文字列に文字が含まれる可能性がある場合%:

printf '\n%s: ' 'Withdraw an amount'
于 2013-04-06T21:58:37.830 に答える