elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Imposibilidad de efectuar cálculos aritméticos realmente simples con shellscript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Imposibilidad de efectuar cálculos aritméticos realmente simples con shellscript  (Leído 2,409 veces)
H4RR13R


Desconectado Desconectado

Mensajes: 1.229


Pienso... luego existo


Ver Perfil WWW
Imposibilidad de efectuar cálculos aritméticos realmente simples con shellscript
« en: 26 Septiembre 2015, 22:46 pm »

Muy Buenas gente,

Este artículo pensaréis que no tiene ningún sentido, pero después de años programando en varios lenguajes, hoy me he encontrado una sorprendente barrera: No hay manera natural de hacer operaciones simples y obtener valores decimales en un archivo .sh

¿Os sorprende?

a = 3/2 //o bien 3.0/2

Hacer cosas como esta, aparentemente tan simples, me resulta chocantemente imposible, por más que busque ejemplos en internet, no tengo narices de hacer medias de cálculos obteniendo números de formato flotante, además de que absolutamente todo me da un error de sintaxis, intente lo que intente.

Alguien me podría ayudar a hacer algo como esto?

media = (a+b+c)/3

os lo agradecería eternamente, un saludo.


En línea


mi frase: Un hacker no dice lo que sabe un lammer no sabe lo que dice
explorer

Desconectado Desconectado

Mensajes: 102


Analista/Programador Perl


Ver Perfil
Re: Imposibilidad de efectuar cálculos aritméticos realmente simples con shellscript
« Respuesta #1 en: 26 Septiembre 2015, 23:41 pm »

Con shell, no puedes. Bash solo entiende aritmética entera.

Debes usar el comando bc para esas operaciones. Por ejemplo (desde la línea de comandos o en un script):

Código:
bc -l <<< '(2+4+7)/3'
Sale:
4.33333333333333333333

En un script puedes guardar el resultado en una variable, así:
Código:
a=$(bc -l <<< '(8+4+7)/3')
echo $a
O así:
Código:
b=$(echo '(8+4+7)/3' | bc -l)

Si el programa empieza a hacerse largo, es mejor usar algo con más potencia, como un Perl, Python, Ruby, javascript, etc.

Otra opción es usar zsh o ksh.


« Última modificación: 11 Octubre 2015, 23:58 pm por explorer » En línea

H4RR13R


Desconectado Desconectado

Mensajes: 1.229


Pienso... luego existo


Ver Perfil WWW
Re: Imposibilidad de efectuar cálculos aritméticos realmente simples con shellscript
« Respuesta #2 en: 11 Octubre 2015, 05:40 am »

Muchas gracias por tu respuesta, me sirvió de ayuda, al tener el tema aparcado y retomarlo, pude solucionar el problema.

Un saludo!
En línea


mi frase: Un hacker no dice lo que sabe un lammer no sabe lo que dice
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Simular opciones establecidas y efectuar accion
Programación Visual Basic
renga73 2 1,494 Último mensaje 20 Abril 2006, 19:13 pm
por renga73
Control + C en ShellScript
Scripting
Anubis__ 0 2,291 Último mensaje 28 Julio 2008, 14:40 pm
por Anubis__
ayuda , shellscript linux
Scripting
Yuki.N> 1 2,594 Último mensaje 20 Abril 2010, 19:57 pm
por leogtz
duda grep fichero shellscript linux « 1 2 »
Scripting
CrÄsH 10 7,778 Último mensaje 6 Noviembre 2010, 11:47 am
por Afsoon
Trivial con ShellScript
Scripting
recomx 0 2,334 Último mensaje 15 Mayo 2019, 02:16 am
por recomx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines