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 DELTAauf 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?
echoBefehl benötigen . Verwenden Sie stattdessen Here String Redirection:bc <<< "scale=2; 2^500"
echoWeg ist viel portabler (denken Sie an kommerzielle * Nixe). Darüber hinaus müssen Sie sicherstellen , dass /tmpheißt beschreibbar , wenn Sie hier Strings verwenden. Denken Sie an Notfallkonsolen mit /montiertem Ro - Ihr hierer String-Ansatz schlägt fehl.
BC_LINE_LENGTHwie Stephane in dieser Antwort: unix.stackexchange.com/a/176966/70524