bc
farà questo per voi, ma l'ordine è importante.
> echo "scale = 2; 20 * 100/30" | bc
66.66
> echo "scale = 2; 20/30 * 100" | bc
66.00
o, per il vostro caso specifico:
> export ach_gs=2
> export ach_gs_max=3
> x=$(echo "scale = 2; $ach_gs * 100/$ach_gs_max" | bc)
> echo $x
66.66
Qualunque sia il metodo scelto, questo è maturo per l'inclusione come una funzione per rendere la vita più facile:
#!/bin/bash
function pct() {
echo "scale = $3; $1 * 100/$2" | bc
}
x=$(pct 2 3 2) ; echo $x # gives 66.66
x=$(pct 1 6 0) ; echo $x # gives 16
smok, nie tykaj :) – lauriys
Mi dispiace, mea culpa, mea maxima! – smok1
per operazioni matematiche, prova ad usare bc o awk, non bash o expr – ghostdog74