BASH : sed et bash

Salut,

J’ai un truc bizarre avec ce code :

LANG='fr_FR.UTF-8'
 
res="`grep $LANG /etc/locale.gen | sed -e '/^[ ]*#/d' -e '/^$/d'`"
echo $res

Elle me renvoie bien les lignes non commentées et contenant $LANG, par contre, dans le cas ou $LANG n’est pas présent, j’ai en retour une ligne vide… alors que sed les retire :s

J’aimerai que la chaine renvoyée soit vide car je fais un if sur $res, qui du coup est toujours vrai :frowning:

Merci pour votre aide

[code]LANG=‘fr_FR.UTF-8’

res="grep $LANG /etc/locale.gen | sed -e '/^[ ]*#/d' -e '/^$/d'"
echo -n $res[/code]

Ou alors, transmet le code qui suit pour qu’on puisse voir comment est fait ce “if”

Au cas où:

[quote=“MicP”][code]LANG=‘fr_FR.UTF-8’

res="grep $LANG /etc/locale.gen | sed -e '/^[ ]*#/d' -e '/^$/d'"
echo -n $res[/code]

Ou alors, transmet le code qui suit pour qu’on puisse voir comment est fait ce “if”[/quote]

Effectivement le -n permet de l’enlever mais là je vois pas comment l’intégrer

voilà la suite

if [ -z "$res" ]; 
then
    echo "installer les locales"
else
    echo "OK"
fi

EDIT :

Bon, je comprends pas, ça fonctionne tel quel maintenant :s

J’avais finit mon “edit” quand j’ai vu que tu avais formulé ton test de “if” de la même façon :slightly_smiling:
Impec!

Ceci dit, [mono]$LANG[/mono] est une variable des paramètres régionaux ([mono]locale[/mono]) qui est normalement déjà renseignée,
mais bien sûr, tout dépends de ce que tu veux faire et du contexte (que je ne connais pas) dans lequel tu utilise ton script.