我如何在Linux控制台中分割?

我有变数,我想find一个由另一个划分的价值。 我应该用什么命令来做到这一点?

在bash shell中,用$(( ... ))括起算术expression式

 $ echo $(( 7 / 3 )) 2 

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

 echo 5/2 | bc -l 

2.50000000000000000000

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

更好的方法是使用“bc”,一个任意的精度计算器。

 variable=$(echo "OPTIONS; OPERATIONS" | bc) 

例如:

 my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc) 

其中“scale = 5”是准确的。

 man bc 

附带几个使用示例。

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

 >dc 4k 67 18/p 3.7222 q > 

显然,更多可用: 人类直stream

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

例如1.2 / 3.4

 >echo 1.2 3.4 | awk '{ print $2/$1 }' 0.352941 

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

 >echo $((5+6)) 11 >echo $((10/2)) 5 >echo $((10/3)) 3 

我假设你的意思是Bash

如果XY是你的variables, $(($X / $Y))返回你所要求的。

使用bash除以$ b分隔$ a的整数除法示例:

 echo $((a/b)) 

其他的东西你可以使用raytrace的答案。 您可以使用反引号来使用另一个shell调用的stdout,然后进行一些计算。 例如,我想知道几个文件的前100行的文件大小。 wc -c的原始大小以字节为单位,我想知道千字节。 以下是我所做的:

 echo `cat * | head -n 100 | wc -c` / 1024 | bc -l 

你应该尝试使用:

 echo "scale=4;$variablename/3"|bc 

你也可以使用perl -e

 perl -e 'print 67/8' 

我也有同样的问题。 划分整数很容易,但十进制数并不那么容易。 如果你有两个像3.14和2.35这样的数字,然后把这个数字分开,那么代码将是Division = echo 3.14 / 2.35 | bc echo 3.14 / 2.35 | bc回声“$师”的报价是不同的。 不要混淆,它位于键盘上的escbutton之下。 唯一的区别是| BC和这里回声作为算术运算算子而不是打印。 所以我添加了echo“$ Division”来打印这个值。 请让我知道这对你有没有用。 谢谢。