7 septembre 2004

Erreur "ksh: 08+03: bad number" lors de l'interprétation de calculs sous Unix

Sous certains Unix, l'opérateur korn shell qui permet l'interprétation d'un calcul ne fonctionne pas si un des arguments vaut 08 ou 09 (l'interpréteur prend ces valeurs comme étant de l'octal).

> echo $((07+03))
10
> echo $((08+03))
ksh: 08+03: bad number
> echo $((09+03))
ksh: 09+03: bad number

Sauf à lui préciser qu'il s'agit d'un nombre en base 10

> echo $((10#08+03))
11

La suppression du zéro non significatif fait disparaitre le problème.

> echo $((8+03))
11

La commande "bc" - elle - fonctionne dans tous les cas.

> echo "08+03" | bc
11

Demandez au support Unix un patch système (information trouvée sur une documentation de BMC Patrol).

Aucun commentaire:

Enregistrer un commentaire