User:Juju2004/Brouillons/Divers/If

#if:
La fonction #if: est une construction if-then-else. Sa syntaxe est la suivante :

Si la condition est une chaîne qui n'est ni vide ni composée d'espaces uniquement, elle est considérée comme vraie et &lt;alors texte1&gt; est renvoyé. Sinon, c'est &lt;sinon texte2&gt; sera renvoyé. Le &lt;sinon texte2&gt; peut être omis, dans ce cas le résultat retourné sera vide si la condition est fausse.

Exemples :

->

->

->

->

->

En général, la condition utilisée sera la valeur d'un paramètre. On utilise alors la syntaxe suivante :

Le texte renvoyé est :
 * &lt;alors texte1&gt; si le paramètre paramètre  est défini et n'est ni vide ni égal à une suite d'espaces ;
 * &lt;sinon texte2&gt; dans le cas contraire, à savoir : paramètre  n'est pas défini ou est vide ou égal à une suite d'espaces.

On a donc le schéma suivant (si le #if est utilisé dans le code de « Modèle » avec « paramètre » présent, non défini ou vide) : \_____________           \______________/                                   |                |                                   _|_              _|_

Remarques :
 * La syntaxe  ne donne pas le résultat auquel on s'attendrait de prime abord. En effet, dans ce cas, si paramètre n'est pas défini, c'est &lt;alors texte1&gt; qui sera renvoyé. La raison en est simple : lorsque paramètre n'est pas défini, la chaîne  n'est pas interprétée, et vaut donc, ce qui n'est ni une chaîne vide, ni une suite d'espaces. La condition est donc considérée comme vraie.
 * La fonction if ne connait pas le signe « = » ni les expressions mathématiques. renverra « oui » car la chaîne « 1 = 2 » n'est pas vide. Pour comparer des chaînes, utilisez ifeq. Pour comparer des nombres, utilisez ifexpr.