Saltar al contenido

¿Cómo puedo dividir con variables en un shell de Linux?

Solución:

Esas variables son variables de shell. Para expandirlos como parámetros a otro programa (es decir expr), debe utilizar el $ prefijo:

expr $x / $y

La razón por la que se quejó es porque pensó que estaba tratando de operar con caracteres alfabéticos (es decir no entero)

Si está usando el shell Bash, puede lograr el mismo resultado usando la sintaxis de expresión:

echo $((x / y))

O:

z=$((x / y))
echo $z

Creo que ya se mencionó en otros hilos:

calc(){ awk "BEGIN { print "$*" }"; }

entonces simplemente puede escribir:

calc 7.5/3.2
  2.34375

En tu caso será:

x=20; y=3;
calc $x/$y

o si lo prefiere, agregue esto como un script separado y hágalo disponible en $ PATH para que siempre lo tenga en su shell local:

#!/bin/bash
calc(){ awk "BEGIN { print $* }"; }

¿Por qué no usar dejar? Me resulta mucho más fácil. Aquí hay un ejemplo que puede resultarle útil:

start=`date +%s`
# ... do something that takes a while ...
sleep 71

end=`date +%s`
let deltatime=end-start
let hours=deltatime/3600
let minutes=(deltatime/60)%60
let seconds=deltatime%60
printf "Time spent: %d:%02d:%02dn" $hours $minutes $seconds

Otro ejemplo simple: calcule el número de días desde 1970:

let days=$(date +%s)/86400
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *