linux - 如何替换 bash 脚本中的 'bc' 工具?

标签 linux bash shell awk sed

我的 bash 脚本中有以下命令:

printf '\n"runtime": %s' "$(bc -l <<<"($a - $b)")"

我需要在大约 100 台服务器上运行这个脚本,我发现其中一些没有安装 bc。我不是管理员,无法在缺少的服务器上安装 bc

在那种情况下,我可以使用什么替代方法来执行相同的计算?请让我知道新命令应该是什么样子

最佳答案

如果您需要一个适用于浮点运算的解决方案,您总是可以回退到 Awk。

awk -v a="$a" -v b="$b" 'BEGIN { printf "\n\"runtime\": %s", a-b }' </dev/null

将代码放在 BEGIN block 中并重定向来自 /dev/null 的输入是当您想使用 Awk 但没有文件时的常见解决方法要循环的行数,这是它真正设计的目的。

关于linux - 如何替换 bash 脚本中的 'bc' 工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48534742/

相关文章:

bash - 这个 bash 重定向运算符是什么? "<&lt;!"

java - 如何从 Linux 的输出中删除(过滤掉)特定的 Java 堆栈跟踪?

shell - 是否可以在远程 ssh 命令中使用变量?

python - 如何将这些命令集成到 python 中?

java - 连续 `System.loadLibrary` 返回 `UnsatisfiedLinkError`

linux - Node.js 集群 - 检测工作线程卡住了吗?

linux - Bash 在启动时运行 gpxlogger

c - 是否可以将两个以上的标准流连接到 Linux 中的终端?

python - 使 Python 脚本在系统范围内可访问

bash - 如何在 Apache2 CGI 中捕获参数值