Isso está funcionando para mim. Você também pode colorir a saída, se quiser.
#! /bin/bash -
TXT_BLD=$(tput bold)
TXT_RST=$(tput sgr0)
IFS= mapfile -t disk < <(df -h | tail -n +2)
for line in "${disk[@]}"; do
USAGE=$(echo $line | awk '{print $5/1}')
if [[ "$USAGE" -gt '95' ]]; then
echo "${TXT_BLD}$line${TXT_RST}"
else
echo "$line"
fi
done
Isso fará com que a linha amarela seja maior que 85% e vermelha se maior que 95%:
#! /bin/bash -
TXT_BLD=$(tput bold)
TXT_RED=$(tput setaf 1)
TXT_YLW=$(tput setaf 3)
TXT_WARN="${TXT_BLD}${TXT_YLW}"
TXT_ERR="${TXT_BLD}${TXT_RED}"
TXT_RST=$(tput sgr0)
IFS= mapfile -t disk < <(df -h | tail -n +2)
for line in "${disk[@]}"; do
USAGE=$(echo $line | awk '{print $5/1}')
if [[ "$USAGE" -gt '95' ]]; then
echo "${TXT_ERR}$line${TXT_RST}"
elif [[ "$USAGE" -gt '85' ]]; then
echo "${TXT_WARN}$line${TXT_RST}"
else
echo "$line"
fi
done