除法在 bash 中不起作用

Kje*_*son 3 linux bash

我想从文件中计算一些信息,但除法不起作用。如果我将 更改/为 a+-,则此计算正确。有任何想法吗?

#!/bin/sh
    FILE=/tmp/stats

    for EMPTY in $(cat $FILE |sed '1!d'); do (echo "Empty Servers $EMPTY | Empty-Servers=$EMPTY;"); done
    for SERVERS in $(cat $FILE |sed '2!d'); do (echo "Total Servers $SERVERS | Total=$SERVERS;"); done

    PERCENT=$(((EMPTY / SERVERS)*100))
    echo $PERCENT
Run Code Online (Sandbox Code Playgroud)

Håk*_*ist 6

除法确实有效,只是外壳只处理整数。

我认为你要么想要调用类似的东西bc,然后你可以做任何你喜欢的数学,要么适应处理整数的含义。

你可以做的例子:改变你的表达式EMPTY100先乘以,然后除以SERVERS。即,$(((EMPTY * 100) / SERVERS))
(当然,这可能不像您希望的那样精确,但它不会一直产生 0 作为结果。)