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)