Devm ter visto que os comandos do [B]shell[/B] "let" e "[B]expr[/B]" apenas permitem operações do tipo inteiro. E para efectuar
calculos numericos com floats ?
Opcao 1 : Utilizar o programa bc : arbitary precision calculator language
y=2.2
x=2.7
echo "$x/$y"|bc -l
1.22727272727272727272
Opção 2 : Utilzar o programa awk
x=2.2
y=3.3
echo $x $y | awk '{print $1+$2}'
Opção 3 : Escrever (em c) um comando proprio tipo mylet
Utilização seria :
mylet 2.2 2.4 +
OU
mylet 2.3 4.2 *
O programa depois será qualquer coisa como ...
#include ..
main( int argc , char **argv )
{
[B]float[/B] a,b;
a= atof( argv[1] );
b= atof( argv[1] );
if ( 0==strcmp(argv[3],"+")) printf("%f\n",a+b);
if ( 0==strcmp(argv[3],"/")) if (b!=0) printf("%f\n",a/b); else printf(NaN\n);
}
cc o mylet mylet.c
mv mylet $HOME/bin - disponibilizar comando, copiando para um directorio do seu path