我下面有以下脚本,该脚本用于演示CPU利用率:
#!/bin/bash
#Color declarations
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
LIGHTBLUE='\033[1;34m'
LIGHTGREEN='\033[1;32m'
NC='\033[0m' # No Color
a=1
b=3
end=$((SECONDS+120))
echo "CPU Utilization:"
echo "1%"
while [ $SECONDS -lt $end ] ; do
echo -e "${GREEN}\e[1A$((a+RANDOM%(b-a))).$((RANDOM%99))%${NC}"
sleep 1
done
由于某种原因,当回显百分比时,将出现两个百分号,而不是数字的最后一位和一个百分号。例如,有时输出为2.7 %%,而不是2.72%。当我删除百分号时,一切正常,但是即使我在百分号和随机数生成之间包含一个空格,百分号仍会偶尔出现。有人知道如何解决此问题吗?具体来说,问题在于此处的百分号:
echo -e "${GREEN}\e[1A$((a+RANDOM%(b-a))).$((RANDOM%99))%${NC}"
^
答案 0 :(得分:3)
您的代码正在覆盖已经存在的内容,但是可能会留下一个百分号而不会被覆盖。如果以前的结果是
2.33%
这次您正在写
2.7%
在同一空间中,它仅覆盖前四个字符,因此保留前一个百分号。因此,您应该添加一个空格,但要在百分号之后 。