#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)