변수가 있는 부동 숫자 오류

변수가 있는 부동 숫자 오류

다음과 같은 명령이 있습니다.

#!/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 스크립트 또는 둘 다에서 문제를 일으킬 수 있는 잠재적인 문제의 전체 클래스를 제거하기 때문입니다.

관련 정보