2016-12-09 10 views
-1
#!/bin/ksh 

a=8.3 
b=10.20 
diff=`expr $b - $a` 
echo "$diff" 

seine gebenUNIX-Shell-scripting Subtraktion für Gleitkommazahlen

expr: 0402-046 A angegebene Bediener numerischen Parameter erfordern. Fehler i ausgegeben werden soll als 1,9

+0

Sie 'bc' stattdessen verwenden: echo $ b- $ a | BC'. Auf der Kommandozeile 'expr 3.2 - 2' gibt es das gleiche Ergebnis. Es scheint, dass Ausdruck kann nicht float nehmen: siehe http://unix.stackexchange.com/questions/165165/arithmetic-operations-with-expr-and-variables – fredtantini

+0

@Giri: Sie können eine Rückmeldung über die bereitgestellte Antwort und akzeptieren es (ein kleines Häkchen auf der linken Seite der Antwort), um den Beitrag zu markieren. – Inian

+0

Laut den Anmerkungen, die von einer hilfreichen Person [zu Ihrer späteren Frage hier] (http://stackoverflow.com/q/41165923/472495) hinzugefügt wurden, erwarten wir von Ihnen, dass Sie mit Menschen interagieren, die Ihnen helfen. Ich habe den Beitrag unten aufgewertet und deinen Beitrag abgelehnt. – halfer

Antwort

1

Sie nicht bc dafür brauchen, ksh die nativen arithmetischen Operatoren in

#!/bin/ksh 

a=8.3 
b=10.20 
printf "%.2f\n" "$((b - a))" 

Ausgänge verwenden

$ ksh script.ksh 
1.90