変数の浮動小数点数エラー

変数の浮動小数点数エラー

次のコマンドがあります。

#!/bin/bash

echo how many GİBs
read n
echo $n GİBs = $a GBs

a=$(awk "BEGIN {print 1.073741824*$n; exit}")

ただし、次の出力を提供します。

how many GİBs
12
12 GİBs = GBs

この問題をどのように解決できますか?

答え1

awkで-v設定アッ変えるたとえば、awk の値をnbash の値と同じ値に設定します。$n-v n="$n"

$ n=10
$ a=$(awk -v n="$n" 'BEGIN{ print  1.073741824*n; exit}')
$ echo $a
10.7374

awkスクリプトで二重引用符を使用してbash変数を直接使用するのではなく、これを行うのはなぜですか?

これは、bashスクリプト、awkスクリプト、またはその両方で問題を引き起こす可能性のある問題の完全なクラスを削除するためです。

関連情報