Ich möchte den Wert 2 ^ 500 in der Variablen speichern DELTA
.
Ich mache
export DELTA=$(echo "scale=2; 2^500" | bc)
aber das setzt nicht DELTA
auf 3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376
. Stattdessen wird es auf gesetzt
32733906078961418700131896968275991522166420460430647894832913680961\
33796404674554883270092325904157150886684127560071009217256545885393\
053328527589376
Ich habe die Antworten in dieser Frage (3 Jahre alt) mit ausprobiert
export DELTA=$(echo "scale=2; 2^500" | bc | tr '\n' ' ')
oder
export DELTA=$(echo "scale=2; print 2^500" | bc | tr '\n' ' ')
aber keiner von ihnen arbeitet zum Setzen der Variablen, nur um sie wiederzugeben. Irgendeine Idee?
BC_LINE_LENGTH
wie Stephane in dieser Antwort: unix.stackexchange.com/a/176966/70524echo
Befehl benötigen . Verwenden Sie stattdessen Here String Redirection:bc <<< "scale=2; 2^500"
echo
Weg ist viel portabler (denken Sie an kommerzielle * Nixe). Darüber hinaus müssen Sie sicherstellen , dass/tmp
heißt beschreibbar , wenn Sie hier Strings verwenden. Denken Sie an Notfallkonsolen mit/
montiertem Ro - Ihr hierer String-Ansatz schlägt fehl.Antworten:
Ausgabe:
quelle
echo "havk vf sha" | tr 'fhaskv' 'sunfxi'
:) (dies ist rot13 für den armen Mann, wobei die Zeichen absichtlich unsortiert sind, um die Lösung nicht zu frühIn der GNU-Implementierung von
bc
gibt es die UmgebungsvariableBC_LINE_LENGTH
(vgl.man bc
):quelle
BC_LINE_LENGTH=0
sie auf meinem Computer (Mac OS X) nicht funktioniert und ich sehr große Zahlen verwende. DaherBC_LINE_LENGTH
reicht es mir nicht , sie je nach Anzahl zu ändern . +1 auf jeden Fall.In andere Richtungen denken:
quelle
quelle
quelle