Salut,
j'ai une petite question sur bash que je ne comprend pas.
Dans mon manuel (SuSE) la syntaxe if elif else donne ce
genre de code. A voir lorsque je l'exécute il y a une
erreur produite:
~/pro> estif
Variable TERM: dtterm
./testif: line 12: syntax error near unexpected token `else'
./testif: line 12: `else'
~/pro> o testif
#!/bin/bash
# test de script et de if else
#
# la variable globale TERM est testée dans ce cas
#
echo "Variable TERM: $TERM"
if test "$TERM" = xterm
then
echo "C'est du xterm qui est présent!"
elif test "$TERM" = dtterm
echo "C'est du dtterm qui est présent!"
else
echo "Variable TERM différente!"
fi
exit
---------------
Qui peut me dire pourquoi bash n'aime pas mon else?
Merci par avance.
Alain.
--
Alain Chappuis (Remove: pouriel to answer me in my address!)
(Enlevez: pouriel de mon adresse pour me répondre!)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane Chazelas
2006-06-20, 09:18(+02), Alain Chappuis: [...]
./testif: line 12: syntax error near unexpected token `else' ./testif: line 12: `else'
~/pro> o testif [...]
if test "$TERM" = xterm then echo "C'est du xterm qui est présent!" elif test "$TERM" = dtterm echo "C'est du dtterm qui est présent!" else echo "Variable TERM différente!" fi exit --------------- Qui peut me dire pourquoi bash n'aime pas mon else? [...]
Parce qu'il manque un "then" apres le elif.
Sinon, j'utiliserais case plutot:
case $TERM in xterm) ... ;; dtterm) ... ;; esac
-- Stéphane
2006-06-20, 09:18(+02), Alain Chappuis:
[...]
./testif: line 12: syntax error near unexpected token `else'
./testif: line 12: `else'
~/pro> o testif
[...]
if test "$TERM" = xterm
then
echo "C'est du xterm qui est présent!"
elif test "$TERM" = dtterm
echo "C'est du dtterm qui est présent!"
else
echo "Variable TERM différente!"
fi
exit
---------------
Qui peut me dire pourquoi bash n'aime pas mon else?
[...]
./testif: line 12: syntax error near unexpected token `else' ./testif: line 12: `else'
~/pro> o testif [...]
if test "$TERM" = xterm then echo "C'est du xterm qui est présent!" elif test "$TERM" = dtterm echo "C'est du dtterm qui est présent!" else echo "Variable TERM différente!" fi exit --------------- Qui peut me dire pourquoi bash n'aime pas mon else? [...]
Parce qu'il manque un "then" apres le elif.
Sinon, j'utiliserais case plutot:
case $TERM in xterm) ... ;; dtterm) ... ;; esac
-- Stéphane
Alain Chappuis
2006-06-20, 09:18(+02), Alain Chappuis: [...]
./testif: line 12: syntax error near unexpected token `else' ./testif: line 12: `else'
~/pro> o testif
[...]
if test "$TERM" = xterm then echo "C'est du xterm qui est présent!" elif test "$TERM" = dtterm echo "C'est du dtterm qui est présent!" else echo "Variable TERM différente!" fi exit --------------- Qui peut me dire pourquoi bash n'aime pas mon else?
[...]
Parce qu'il manque un "then" apres le elif. Oh! merci Stephane...
Donc il y a y bug dans la doc SuSE à ce propos! car il manque effectivement le "then", j'aurai du y penser après une condition de test...
Sinon, j'utiliserais case plutot:
case $TERM in xterm) ... ;; dtterm) ... ;; esac
J'ai le même exercice et il fonctionne à merveille!
Merci encore pour l'aide. Alain. -- Alain Chappuis (Remove: pouriel to answer me in my address!) (Enlevez: pouriel de mon adresse pour me répondre!)
2006-06-20, 09:18(+02), Alain Chappuis:
[...]
./testif: line 12: syntax error near unexpected token `else'
./testif: line 12: `else'
~/pro> o testif
[...]
if test "$TERM" = xterm
then
echo "C'est du xterm qui est présent!"
elif test "$TERM" = dtterm
echo "C'est du dtterm qui est présent!"
else
echo "Variable TERM différente!"
fi
exit
---------------
Qui peut me dire pourquoi bash n'aime pas mon else?
[...]
Parce qu'il manque un "then" apres le elif.
Oh! merci Stephane...
Donc il y a y bug dans la doc SuSE à ce propos! car il manque
effectivement le "then", j'aurai du y penser après une condition
de test...
Sinon, j'utiliserais case plutot:
case $TERM in
xterm)
...
;;
dtterm)
...
;;
esac
J'ai le même exercice et il fonctionne à merveille!
Merci encore pour l'aide.
Alain.
--
Alain Chappuis (Remove: pouriel to answer me in my address!)
(Enlevez: pouriel de mon adresse pour me répondre!)
./testif: line 12: syntax error near unexpected token `else' ./testif: line 12: `else'
~/pro> o testif
[...]
if test "$TERM" = xterm then echo "C'est du xterm qui est présent!" elif test "$TERM" = dtterm echo "C'est du dtterm qui est présent!" else echo "Variable TERM différente!" fi exit --------------- Qui peut me dire pourquoi bash n'aime pas mon else?
[...]
Parce qu'il manque un "then" apres le elif. Oh! merci Stephane...
Donc il y a y bug dans la doc SuSE à ce propos! car il manque effectivement le "then", j'aurai du y penser après une condition de test...
Sinon, j'utiliserais case plutot:
case $TERM in xterm) ... ;; dtterm) ... ;; esac
J'ai le même exercice et il fonctionne à merveille!
Merci encore pour l'aide. Alain. -- Alain Chappuis (Remove: pouriel to answer me in my address!) (Enlevez: pouriel de mon adresse pour me répondre!)