Bash Scripting y bc
Estoy tratando de escribir un script bash y necesitaba hacer algunos cálculos de coma flotante. Básicamente quiero hacer algo como esto:
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
fi
El problema con el que me encuentro es $? tiende a retener la salida del programa echo y no la llamada bc. ¿Hay alguna manera de guardar la salida del programa bc en una variable?
EDITAR:
Gracias por las respuestas rápidas. Aquí hay otra forma de ver el problema. Digamos que modifiqué un poco el script para que se vea así:
#!/bin/bash
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
exit
fi
echo "$NUM"
Cuando el usuario ingresa un valor de coma flotante normal, funciona bien:
bash script.sh 1.0
salida:
.1000000000000000000000000
Sin embargo, cuando el usuario ingresa un valor incorrecto, el script no puede recuperarse:
bash script.sh 1.0a
salida:
(standard_in) 1: parse error
Lo que intento hacer es que salga con gracia.