Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Archive de la liste aide - [Aide] problème avec une fonction dans un script bash
De plus, comme tes variables contiennent des chaînes de caractères qui
contiennent des espaces,
il faut le prévoir.

Si tu appliques les principes de la programmation défensive, ça ira mieux.

Les deux lignes:
ecl_pub_11="abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxDA 70"
decimal $ecl_pub_11
​
font que la fonction décimal reçoit 2 paramètres:

$1 = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxDA"
et
$2 ="70"

Car l'espace coupe le premier en deux

tout cela parce que tu veux écrire

decimal "$ecl_pub_11"

alors que tu as écrit

decimal $ecl_pub_11


et ainsi de suite dans le code.


en programmation défensive:

1) pour utiliser la valeur d'une variable nommé foo, on écrit toujours et
partout  ${foo} avec les accolades. Ca évite les erreurs de frappe et de
concaténation de quelquechose avec le nom d'une variable. Cela isole bien
la variable.

2) en cas de valeurs de chaines de caractères, on ajoute en plus
systématiquement les double-quote (guillemets) autour de la variable.

donc

mabellefonction "${foo}"

au lieu de seulement

mabellefonction $foo


Ces principes de précaution sont à appliquer partout, pas seulement sur les
appels de fonction. Partout dans ton code.


__P
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lea-linux.org/pipermail/aide/attachments/20160117/f846d24b/attachment-0001.html>

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons