Bash não pode fazer comparações de ponto flutuante. Você precisa chamar outra ferramenta, aqui mostro bc
entrada de leitura de uma bash aqui-string .
Use o comando read
para extrair os campos das linhas do seu arquivo em vez de chamar cut
várias vezes.
Você não pode inserir aspas duplas dentro de uma string entre aspas duplas sem escapar delas. Use printf
para tornar a citação um pouco mais fácil.
#!/bin/bash
while IFS=: read dri nu tot fre rest_of_line; do
if [[ $(bc <<< "$fre > 2") == "1" ]]; then
color=81F781
else
color=B40404
fi
printf '<td align="Center" bgcolor="#%s">%s</td>' $color $fre >>mailbody.html
done < output_10.txt