![Armazene 2 ^ 500 em uma variável no bash](https://rvso.com/image/36033/Armazene%202%20%5E%20500%20em%20uma%20vari%C3%A1vel%20no%20bash.png)
Quero armazenar o valor de 2 ^ 500 na variável DELTA
.
estou fazendo
export DELTA=$(echo "scale=2; 2^500" | bc)
mas isso não está definido DELTA
como 3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376
. Em vez disso, ele define para
32733906078961418700131896968275991522166420460430647894832913680961\
33796404674554883270092325904157150886684127560071009217256545885393\
053328527589376
Eu tentei as respostas emessa questão(3 anos), usando
export DELTA=$(echo "scale=2; 2^500" | bc | tr '\n' ' ')
ou
export DELTA=$(echo "scale=2; print 2^500" | bc | tr '\n' ' ')
mas nenhum deles funciona para definir a variável, apenas para ecoá-la. Qualquer ideia?
Responder1
Na implementação GNU de bc
, existe a variável de ambiente 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
Responder2
echo "scale=2; 2^500" | bc | tr -d '\n\\'
Saída:
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009 217256545885393053328527589376
Responder3
Pensando fora da caixa:
export DELTA=$(python -c 'print(2**500)')
Responder4
$ echo "scale=2; 2^500" | bc | perl -pe 's/\\\n//'
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376