Error con números flotantes con variables.

Error con números flotantes con variables.

Tengo un comando como este:

#!/bin/bash

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

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

Pero da un resultado como este:

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

Como puedo resolver esto ?

Respuesta1

Utilice awk -vpara establecer unawkvariable. por ejemplo , para establecer awk nen el mismo valor que bash $n,.-v n="$n"

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

¿Por qué hacerlo de esta manera, en lugar de usar variables bash directamente dentro de un script awk entre comillas dobles?

Porque elimina una clase completa de problemas potenciales que pueden causar problemas en su script bash O en su script awk O en ambos.

información relacionada