Bash-Scripting und bc

Ich versuche zu schreiben, ein bash-Skript, und ich brauchte einige floating-point-math. Im Grunde möchte ich etwas wie das hier tun:

NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
fi

Das problem, das ich in $ ist? tendenziell halten die Ausgabe des echo-Programms und nicht dem bc-Aufruf. Gibt es eine Möglichkeit, die ich speichern Sie die Ausgabe aus dem bc-Programm in eine variable?

EDIT:

Danke für die schnellen Antworten. Hier ist eine andere Sichtweise auf das problem. Sagen, dass ich geändert, das Skript ein bisschen, damit es wie folgt aussieht:

#!/bin/bash
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
exit
fi
echo "$NUM"

Wenn der Benutzer Eingänge einer normalen floating-point-Wert, es funktioniert:

bash script.sh 1.0

Ausgabe:

.1000000000000000000000000

Jedoch, wenn der Benutzer einen falschen Wert, wird das Skript nicht mehr erholen kann:

bash script.sh 1.0a

Ausgabe:

(standard_in) 1: parse error

Was ich versuche zu tun ist, Holen Sie es würdevoll beenden.

Schreibe einen Kommentar