gpt4 book ai didi

linux - 这可以在没有 "bc"的情况下重写吗? bc 未安装在环境中的大多数主机上

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:19 27 4
gpt4 key购买 nike

我试图在多台主机上运行这个脚本,但它们没有安装 bc。

我读到你可以使用类似“awk 'BEGIN {print...}' 的东西,但我无法让它工作。


#!/bin/bash

nproc=$(nproc);

load=$(uptime | awk '{print $12}');


load_diff=$(echo "$load - $nproc" | bc)

cores=$(echo "$nproc * .25" | bc)

if (( $(echo "$load_diff > $cores" | bc --mathlib) ));

then

top -c -n 2 -b > /tmp/top.txt

fi

最佳答案

Linux 或 Unix 操作系统提供了bcexpr 来进行算术运算。

因此,如果未安装 bc,您可以使用 expr 进行计算。

您可以使用以下命令在 expr 中执行相同的任务:

来自:

load_diff=$(echo "$load - $nproc" | bc)

到:

load_diff=$(expr $load - $nproc) or load_diff=`expr $load - $nproc`

但是,expr 的一个限制是它不处理小数。为此,您可以使用下面的 awk 命令来处理小数。

cores=$(awk 'BEGIN{ print '$nproc' * '.25'}') and load_diff=$(awk 'BEGIN{print '$load' - '$nproc' }')

关于linux - 这可以在没有 "bc"的情况下重写吗? bc 未安装在环境中的大多数主机上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57899326/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com