# Erreur opérateur unaire attendu

**URL:** <https://www.debian-fr.org/t/erreur-operateur-unaire-attendu/62881>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 8:33 UTC](https://www.debian-fr.org/t/erreur-operateur-unaire-attendu/62881 "2016-02-21T20:33:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![eric0279](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/94ad74/32.png) [@eric0279](https://www.debian-fr.org/u/eric0279)\
**Post date:** [Février 21, 2016, 8:33 UTC](https://www.debian-fr.org/t/erreur-operateur-unaire-attendu/62881/1 "2016-02-21T20:33:43Z")

</div>

Bonjour,

je galère un peu avec une fonction…

```auto
#!/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 😠

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,

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Février 21, 2016, 8:33 UTC](https://www.debian-fr.org/t/erreur-operateur-unaire-attendu/62881/2 "2016-02-21T20:33:43Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![eric0279](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/94ad74/32.png) [@eric0279](https://www.debian-fr.org/u/eric0279)\
**Post date:** [Février 21, 2016, 8:33 UTC](https://www.debian-fr.org/t/erreur-operateur-unaire-attendu/62881/3 "2016-02-21T20:33:44Z")

</div>

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é ^^
