Je cherche à tester si le retour d'un grep est vide, je fait ça comme suit :
#!/bin/sh
test=`cat vm-state | grep on`
if [ -z "$test" ] || [ $test = " " ] || [ $test = "" ]
then
echo "la chaine est vide"
else
echo "la chaine n'est pas vide : $test"
fi
Dans le cas ou rien n'est retourné par le grep ça fonctionne, par contre, dans le cas ou le grep trouve des (…)