PDA

Afficher la version complète : [Réglé] controle d'une chaine vide



berny
09/08/2012, 10h21
Bonjour,

Je me tourne encore vers Alionet pour une question de programmation.

J'ai un fichier qui s'appelle error.txt. Dans ce fichier, il y a une série de ligne. Je fais un test "grep" pour récupérer l'erreur. Ca donne ceci:


error_arrival==`cat error.txt | grep "RO_" | grep "p_arrival"`
error_starting=`cat error.txt | grep "RO_" | grep "p_start"`

Si l'erreur est présente, la variable "error_arrival" ou la variable "error_starting" contient la ligne de l'erreur. Si l'erreur n'est pas présente, la variable est "vide"

Je souhaite faire un test du genre:


if [ ${error_arrival} n'est pas vide ] ; then
echo " Erreur arrival"
fi


Comment puis-je faire ce test if ? J'ai essayé avec "-z" ou "-n" mais ça ne fonctionne pas..

merci pour votre aide

berny

---------- Message ajouté à 10h21 ---------- Le dernier message était à 09h58 ----------

J'ai la solution: faire un test sur la longueur de la variable suivant:


if [ ${#error_arrival} -gt 3 ] ; then echo " la chaine arrival nest pas vide"
fi

jluce
09/08/2012, 10h24
slt

recupère le code de retour de la commande

cat error.txt | grep "RO_" | grep "p_arrival"

si $? est egale a 0 c'est qu'il a trouver quelque chose si il est a un c'est qu'il n'a rien trouver

si ca peut aider

a+