Erreur opérateur unaire attendu

Bonjour,

je galère un peu avec une fonction…

#!/bin/bash

PATH=/bin:/usr/bin:/sbin:/usr/sbin
#Color

ROUGE="\033[1;31m"
VERT="\033[1;32m"
NORMAL="\033[0;39m"

function srcds_stats() {
clear
  NBPROC="$(cat /proc/cpuinfo | grep processor | wc -l)"
  LOADG1=`cat /proc/loadavg | awk '{print $1}' RS=" " | awk '{print $1}' RS=""`
  LOADG5=`cat /proc/loadavg | awk '{print $1}' RS=" " | awk '{print $2}' RS=""`
  LOADG15=`cat /proc/loadavg | awk '{print $1}' RS=" " | awk '{print $3}' RS=""`
 
  AVGRT=$(if [ "$(echo "$LOADG1 >= $max_loadavg"|bc)" -eq 1 ]; then echo -e "${RED}WARNING: ${LOADG1}${NORMAL}";else echo -e "${GREEN}${LOADG1}${NORMAL}";fi)
  AVGRT5=$(if [ "$(echo "$LOADG5 >= $max_loadavg"|bc)" -eq 1 ]; then echo -e "${RED}WARNING: ${LOADG5}${NORMAL}";else echo -e "${GREEN}${LOADG5}${NORMAL}";fi)
  AVGRT15=$(if [ "$(echo "$LOADG15 >= $max_loadavg"|bc)" -eq 1 ]; then echo -e "${RED}WARNING: ${LOADG15}${NORMAL}";else echo -e "${GREEN}${LOADG15}${NORMAL}";fi)

  echo -e " Load AVG: ${AVGRT} ${AVGRT5} ${AVGRT15}"

}

function check_loadavg() {
  if [ "$NBPROC" -eq "1" ];then
    max_loadavg="$NBPROC"
  elif [ "$NBPROC" -eq "2" ];then
    max_loadavg="$NBPROC"
  elif [ "$NBPROC" -eq "4" ];then
    max_loadavg="$NBPROC"
  elif [ "$NBPROC" -eq "8" ];then
    max_loadavg="$NBPROC"
  elif [ "$NBPROC" -gt "8" ];then
    max_loadavg="$NBPROC"
  fi
}

L’erreur est dans les lignes AVGRT=

Le plus étrange, si j’exécute dans un terminal les fonctions, aucune erreur :angry:

C’est l’intégration du if dans la variable qui doit foirer et là j’avoue que je ne sais pas comment l’intégrer autrement…

Merci pour votre aide.

Cordialement,

A première vue, guillemets imbriqués non échappés.

Si j’enlève les “”, cela me retourne une autre erreur:

[quote]Caractère de fin de fichier (EOF) prématuré lors de la recherche du « " » correspondant
./manage.sh: lignexx: Erreur de syntaxe : fin de fichier prématurée
[/quote]

Résolu: il fallait simplement voir que la fonction check_loadavg n’était pas appelé ^^