我必须变量,我想找到一个除以另一个的值。我应该使用哪些命令来执行此操作?
12 回答
在 bash shell 中,用$(( ... ))
$ 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
附带几个使用示例。
我仍然更喜欢使用dc,它是一个 RPN 计算器,因此以 4 位精度将 67 除以 18 的快速会话看起来像
>dc
4k
67
18/p
3.7222
q
>
显然,更多可用:man dc
在 bash 中,如果您的除法中不需要小数,您可以执行以下操作:
>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3
我假设Linux 控制台是指Bash。
如果X
和Y
是您的变量,则$(($X / $Y))
返回您要求的内容。
使用 bash 将 $a 除以 $b 的整数除法示例:
echo $((a/b))
您可以使用光线跟踪的答案做其他事情。您可以使用反引号来使用另一个 shell 调用的标准输出,然后进行一些计算。例如,我想知道几个文件中前 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'
我也有同样的问题。整数除法很容易,但十进制数并不那么容易。如果您有 2 个数字,例如 3.14 和 2.35,然后将这些数字相除,则代码将为 Division= echo 3.14 / 2.35 | bc
echo "$Division" 引号不同。不要混淆,它位于键盘上的 esc 按钮下方。唯一的区别是 | bc 和这里的 echo 用作算术计算的运算符而不是打印。所以,我添加了 echo "$Division" 来打印值。请让我知道这对你有没有用。谢谢你。