我如何划分Linux控制台?

kma*_*n99 70 linux math command-line divide

我必须变量,我想找到一个除以另一个的值.我应该用什么命令来做这个?

dav*_*420 68

在bash shell中,环绕算术表达式 $(( ... ))

$ echo $(( 7 / 3 ))
2
Run Code Online (Sandbox Code Playgroud)

虽然我认为你只限于整数.

  • 是的,bash仅限于整数数学. (10认同)

小智 38

echo 5/2 | bc -l
Run Code Online (Sandbox Code Playgroud)

2.50000000000000000000

'bc'中的'-l'选项允许浮动结果

  • 凉; 使用`-l`,默认情况下你得到20个小数位*和*加载一个数学库,定义其他函数,如正弦; 要显式指定小数位数,请在表达式前加上`scale = {numPlaces};`(too),如@ user1504475的答案所示.换句话说:`-l`是指定`scale = 20;`的一种方便的替代方法,但由于加载库而导致性能成本 - 但实际影响似乎可以忽略不计. (3认同)

小智 16

更好的方法是使用"bc",一个任意精度的计算器.

variable=$(echo "OPTIONS; OPERATIONS" | bc)
Run Code Online (Sandbox Code Playgroud)

例如:

my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc)
Run Code Online (Sandbox Code Playgroud)

其中"scale = 5"是准确度.

man bc 
Run Code Online (Sandbox Code Playgroud)

附带了几个用法示例.


lib*_*ack 11

我仍然更喜欢使用DC,这是一个RPN计算器,所以快速会话将67除以18与4位数精度看起来像

>dc
4k
67
18/p
3.7222
q
>
Run Code Online (Sandbox Code Playgroud)

显然,更多可用:男子直流

  • 一些指示可能会节省一些"man"之旅:RPN =反向波兰表示法; 简而言之:首先输入操作数,然后输入操作符.输出结果需要终止"p".上述计算的非交互式版本是:`dc -e'4k 67 18/p'`.警告:没有设置精度(使用`{numPlaces} k`)默认为0,即整数除法. (4认同)

小智 11

您可以使用awk,这是一种用于数据提取的实用程序/语言

例如1.2/3.4

>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941
Run Code Online (Sandbox Code Playgroud)


Mar*_*off 8

在bash中,如果你的部门不需要小数,你可以这样做:

>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3
Run Code Online (Sandbox Code Playgroud)


Pao*_*tti 5

我认为通过Linux控制台你的意思是Bash.

如果X并且Y是您的变量,则$(($X / $Y))返回您要求的内容.