как передать bc-расчет в переменную оболочки - PullRequest
5 голосов
/ 15 апреля 2011

У меня есть вычисление в оболочке 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

Есть идеи?

Ответы [ 3 ]

7 голосов
/ 15 апреля 2011

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

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

или в bash:

MYVAR=$(echo "scale 4;3*2.5" |bc)
2 голосов
/ 15 апреля 2011
MYVAR=`echo "scale=4 ; 3*2.5" | bc`

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

0 голосов
/ 15 апреля 2011
 MYVAR=$(echo "scale 4;3*2.5" | bc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...