El truco es no usar bash
para realizar la suma 1 .
Primero, lea cada número en una variable separada. Esto supone que los archivos contienen solo un número y ninguna otra información.
a="$(<a.txt)"
b="$(<b.txt)"
Luego usa la bc
calculadora para obtener el resultado:
bc <<<"$a + $b"
bc
es un "lenguaje y calculadora aritmética de precisión arbitraria".
Para almacenar el resultado en una variable c
:
c="$( bc <<<"$a + $b" )"
Si la <<<
sintaxis se siente rara (se llama "here-string" y es una extensión de la sintaxis de shell POSIX soportada por bash
y algunos otros shells), en su lugar puede usar printf
para enviar la adición a bc
:
printf '%s + %s\n' "$a" "$b" | bc
Y almacenando el resultado c
nuevamente:
c="$( printf '%s + %s\n' "$a" "$b" | bc )"
1 El uso bash
para realizar la suma de dos números extremadamente grandes requeriría la implementación, en el bash
script, de una rutina para hacer aritmética de precisión arbitraria . Esto es perfectamente factible, pero engorroso e innecesario, ya que viene con todos los Unix bc
que ya le brindan este servicio de una manera relativamente fácil y accesible.
python
o similar en ese caso.