在 bash 脚本中使用分数或小数时是否有特定的语法?
我尝试使用以下脚本(在 Ubuntu 12.04 中):
#!/bin/bash
{
n=9
echo "$n"
for (( i=.5; $i <10; i++ ));
do
let "c=$i+1"
echo $i "+" $c
done
}
Run Code Online (Sandbox Code Playgroud)
这适用于i=1,但是当我输入.5.
我是 BASH 的新手,了解到 printf 和 echo 都写入标准输出。但是,我通过以下示例从输入中读取表达式并将结果计算为小数点后 3 位的精度:
read exp
printf "%.3f\n" "$(echo $exp | bc -l)"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 echo 在此处作为printf语句中的参数传递。有没有其他方法可以仅使用 来表示语句echo?
我在 if 语句中遇到困难
我希望每当内存使用率或 CPU 使用率超过 70% 时就会弹出“系统利用率很高”的消息,现在我在 if 语句中尝试了以下 2 个条件,但它给了我错误。
# This script monitors CPU and memory usage
RED='\033[0;31m'
NC='\033[0m' # No Color
while :
do
# Get the current usage of CPU and memory
limit=70.0
cpuUsage=$(top -bn1 | awk '/Cpu/ { print $2}')
memTotal=$(free -m | awk '/Mem/{print $2}')
memUsage=$(free -m | awk '/Mem/{print $3}')
memUsage=$(( (memUsage * 100) / memTotal ))
# Print the usage
echo "CPU Usage: $cpuUsage%"
echo "Memory Usage: $memUsage%"
# Sleep for …Run Code Online (Sandbox Code Playgroud)