![Almacenar 2^500 en una variable en bash](https://rvso.com/image/36033/Almacenar%202%5E500%20en%20una%20variable%20en%20bash.png)
Quiero almacenar el valor de 2^500 en la variable DELTA
.
estoy haciendo
export DELTA=$(echo "scale=2; 2^500" | bc)
pero esto no se establece DELTA
en 3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376
. En cambio, lo establece en
32733906078961418700131896968275991522166420460430647894832913680961\
33796404674554883270092325904157150886684127560071009217256545885393\
053328527589376
Probé las respuestas enesta pregunta(3 años), usando
export DELTA=$(echo "scale=2; 2^500" | bc | tr '\n' ' ')
o
export DELTA=$(echo "scale=2; print 2^500" | bc | tr '\n' ' ')
pero ninguno de ellos funciona para configurar la variable, solo para repetirla. ¿Alguna idea?
Respuesta1
En la implementación GNU de bc
, existe la variable de entorno BC_LINE_LENGTH
(cf man bc
):
~$ echo "scale=2; 2^500" | bc
32733906078961418700131896968275991522166420460430647894832913680961\
33796404674554883270092325904157150886684127560071009217256545885393\
053328527589376
~$ export BC_LINE_LENGTH=99999 #or better 0
~$ echo "scale=2; 2^500" | bc
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376
Respuesta2
echo "scale=2; 2^500" | bc | tr -d '\n\\'
Producción:
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009 217256545885393053328527589376
Respuesta3
Pensar más allá:
export DELTA=$(python -c 'print(2**500)')
Respuesta4
$ echo "scale=2; 2^500" | bc | perl -pe 's/\\\n//'
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376