Speichern Sie 2^500 in einer Variablen in Bash

Speichern Sie 2^500 in einer Variablen in Bash

Ich möchte den Wert 2^500 in der Variable speichern DELTA.

Ich mache

export DELTA=$(echo "scale=2; 2^500" | bc)

aber dies setzt es nicht DELTAauf 3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376. Stattdessen setzt es es auf

32733906078961418700131896968275991522166420460430647894832913680961\
33796404674554883270092325904157150886684127560071009217256545885393\
053328527589376

Ich habe versucht, die Antworten indiese Frage(3 Jahre alt), mit

export DELTA=$(echo "scale=2; 2^500" | bc | tr '\n' ' ') 

oder

export DELTA=$(echo "scale=2; print 2^500" | bc | tr '\n' ' ')

aber keine davon funktioniert zum Setzen der Variable, sondern nur zum Wiedergeben. Irgendeine Idee?

Antwort1

In der GNU-Implementierung von bcgibt es die Umgebungsvariable 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

Antwort2

echo "scale=2; 2^500" | bc | tr -d '\n\\'

Ausgabe:

3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376

Antwort3

In andere Richtungen denken:

export DELTA=$(python -c 'print(2**500)')

Antwort4

$ echo "scale=2; 2^500" | bc | perl -pe 's/\\\n//'
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376

verwandte Informationen