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?
echo
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.
BC_LINE_LENGTH
wie Stephane in dieser Antwort: unix.stackexchange.com/a/176966/70524