как преобразовать bc-вычисление в переменную оболочки

#linux #shell #variables #bc

#linux #оболочка #переменные #bc

Вопрос:

У меня есть вычисление в оболочке Linux, что-то вроде этого

 echo "scale=4;3*2.5" |bc
  

что дает мне результат, теперь мне нравится передавать результат этого вычисления в переменную, чтобы я мог использовать его позже в другой команде,

передача в файлы работает, но не передача в переменные

 echo "scale=4 ; 3*2.5" | bc > test.file
  

итак, в псевдокоде я хочу сделать что-то вроде этого

 set MYVAR=echo "scale=4 ; 3*2.5" | bc ; mycommand $MYVAR
  

Есть идеи?

Ответ №1:

Вы можете сделать (в csh):

 set MYVAR=`echo "scale 4;3*2.5" |bc`
  

или в bash:

 MYVAR=$(echo "scale 4;3*2.5" |bc)
  

Ответ №2:

 MYVAR=`echo "scale=4 ; 3*2.5" | bc`
  

Обратите внимание, что bash не любит нецелые значения — вы не сможете выполнять вычисления с 7.5 в bash.

Комментарии:

1. Нет, не могу этого сделать с let .

2. обратные ссылки — устаревший синтаксис, используйте $() вместо этого. mywiki. wooledge.org/BashFAQ/082

Ответ №3:

  MYVAR=$(echo "scale 4;3*2.5" | bc)