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 bcTaschenrechner, 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 bashund einigen anderen Shells unterstützten POSIX-Shell-Syntax ), können Sie stattdessen printfden Zusatz senden an bc:
printf '%s + %s\n' "$a" "$b" | bc
Und das Ergebnis cerneut speichern :
c="$( printf '%s + %s\n' "$a" "$b" | bc )"
1 Um bashdie Addition von zwei extrem großen Zahlen durchzuführen, müsste im bashSkript 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.
pythonin diesem Fall verwenden oder ähnliches.