it-swarm.com.de

Wie konvertiert man eine Zeichenfolge in UNIX in eine Ganzzahl?

Ich habe d1="11" und d2="07". Ich möchte d1 und d2 in ganze Zahlen konvertieren und d1-d2 ausführen. Wie mache ich das in UNIX?

d1 - d2 gibt derzeit "11-07" als Ergebnis für mich zurück.

22
qwarentine

Die Standardlösung:

 expr $d1 - $d2

Sie können auch tun:

echo $(( d1 - d2 ))

beachten Sie jedoch, dass dies 07 als Oktalzahl behandelt wird! (also 07 ist das gleiche wie 7, aber 010 unterscheidet sich von 10).

37
William Pursell

Jede dieser Funktionen funktioniert von der Shell-Befehlszeile aus. bc ist wahrscheinlich die einfachste Lösung.

Verwendung von bc :

$ echo "$d1 - $d2" | bc

awk verwenden:

$ echo $d1 $d2 | awk '{print $1 - $2}'

Perl verwenden:

$ Perl -E "say $d1 - $d2"

Python verwenden:

$ python -c "print $d1 - $d2"

alle kehren zurück

4
15
Levon
let d=d1-d2;echo $d;

Das sollte helfen.

0
mykeaka