Der Trick besteht darin , die Addition 1 nicht zu verwendenbash
.
Lesen Sie zunächst jede Zahl in eine separate Variable. Dies setzt voraus, dass die Dateien nur eine Nummer und keine anderen Informationen enthalten.
a="$(<a.txt)"
b="$(<b.txt)"
Verwenden Sie dann den bc
Taschenrechner, um das Ergebnis zu erhalten:
bc <<<"$a + $b"
bc
ist eine "Arithmetiksprache und ein Taschenrechner mit beliebiger Genauigkeit".
So speichern Sie das Ergebnis in einer Variablen c
:
c="$( bc <<<"$a + $b" )"
Wenn sich die <<<
Syntax seltsam anfühlt (sie wird als "Here-String" bezeichnet und ist eine Erweiterung der von bash
und einigen anderen Shells unterstützten POSIX-Shell-Syntax ), können Sie stattdessen printf
den Zusatz senden an bc
:
printf '%s + %s\n' "$a" "$b" | bc
Und das Ergebnis c
erneut speichern :
c="$( printf '%s + %s\n' "$a" "$b" | bc )"
1 Um bash
die Addition von zwei extrem großen Zahlen durchzuführen, müsste im bash
Skript eine Routine für die Arithmetik mit beliebiger Genauigkeit implementiert werden . Dies ist perfekt machbar, aber umständlich und unnötig, da jedes Unix mitgeliefert wird,bc
das Ihnen diesen Service bereits auf relativ einfache und leicht zugängliche Weise bietet.
python
in diesem Fall verwenden oder ähnliches.