Forum Linux.débutant Message d'erreur : Integer expression expected

Posté par . Licence CC by-sa.
Tags :
-3
20
jan.
2020

Bonjour à tous,
Ci-joint le message d'erreur que j'obtiens lors de l'exécution du script ci-dessous:

df -Ph | grep -vE '^Fileystem|tmpfs|cdrom' | awk '{ print $5,$6 }' | while  read output
do
echo $output
  used=$(echo $output | awk '{print $1}' | sed s/%//g)
  partition=$(echo $output | awk '{print $2}')
if [ $used -ge 85 ]; then
 echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" kyd@...
 fi
done
  • # Bien formater pour une meilleure lisibilité

    Posté par (page perso) . Évalué à 2 (+0/-0). Dernière modification le 20/01/20 à 21:00.

    df -Ph | grep -vE 'Fileystem|tmpfs|cdrom' | awk '{ print $5,$6 }' | while read output
    do
        echo $output
        used=$(echo $output | awk '{print $1}' | sed s/%//g)
        partition=$(echo $output | awk '{print $2}')
        if [ $used -ge 85 ]; then
            echo "The partition \"partition\" on(hostname) has used used% at(date)" | mail -s "Disk Space Alert: used% Used On(hostname)" kyd@aomail.com
        fi
    done

    Je te renvoie à l'aide Markdown que tu peux trouver en bas de la zone de saisie de nouveau message.

    Et au fait, c'est quoi le message d'erreur, je ne le vois pas dans ton post ?

    « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

    • [^] # Re: Bien formater pour une meilleure lisibilité

      Posté par (page perso) . Évalué à 1 (+0/-0).

      Tu as perdu quelques "$" et "" dans ton commentaire. Le script posté à l'origine fonctionne, mais pas celui reformaté en commentaire. C'est bien beau de corriger une bête affaire de markdown et de rajouter des erreurs…

      Pour la ligne d'erreur, il s'agit probablement du :

      if [ $used -ge 85 ];

      Préfixe ton script par un hashbang avec debug :

      #!/bin/sh -x
      # etc...

      Tu verra la partition qui pose problème sur le $used qui n'est pas numérique.

      Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

    • [^] # Re: Bien formater pour une meilleure lisibilité

      Posté par . Évalué à 1 (+0/-0).

      Bonjour,
      merci pour le formatage.
      ci dessous le message d'erreur
      line 6: [: Use: integer expression expected

      • [^] # Re: Bien formater pour une meilleure lisibilité

        Posté par (page perso) . Évalué à 2 (+1/-0).

        Comme dit dans le commentaire en bas de forum, il faut que tu préfixe ta commande df comme ceci:

        LANG=C df -Ph | grep -vE … etc...

        Car ta locale semble être française et du coup df écrit sa première ligne en Français, et le grep ne la capture pas. Si tu mets LANG=C avant, df parlera anglais et grep sera content car il permet de supprimer la première ligne ayant pour mots "Filesystem ..." et non "Sys. de Fichier...".

        Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

  • # correction: LANG=C

    Posté par (page perso) . Évalué à 2 (+1/-0).

    Cette erreur est dûe au fait que ta locale est Française.
    Voici la portion du script corrigée:
    #!/bin/sh
    #
    LANG=C df -Ph | grep -vE …
    etc…

    Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.