假设我们有一个像“abc.txt”这样的文件,它有一个值123456
,而文件“xyz.txt”也有一个像 的单个值654321
。我想将文件中的这些值存储到一些 shell 变量中,例如abc = 123456
和 ,xyz = 654321
并且想要执行一些操作,例如density=$abc/$xyz
.我能够将文件中的内容传输到变量,但它不会将 shell 变量的内容视为我们可以进行算术运算的数字。为此可以做什么?
如何在 bash 或其他语言/框架中进行整数和浮点计算?链接帮助了各种算术方法,但没有告诉分配给变量的文件中的值是否适合算术?
答案1
如果您使用的是 Bash shell:
#!/bin/bash
abc=$(<abc.txt)
xyz=$(<xyz.txt)
density=$((abc / xyz))
echo "$density"
注意:输出将是0
这样的,因为分子小于分母。
答案2
Shell 算术仅是整数。用于bc
:
echo $var1/$var2 | bc -l
或者更简单的
bc -l <<< $var1/$var2