Selon Jean-Pierre Pourrez :
> Quel est la valeur du script "t" ?

"t" est un saut. Mais tu l'as compris tout seul puisque je vois que tu l'as
reutilisé dans get_DISTVER. C'est bien toi qui l'as écrite ?


Selon Jean-Pierre Pourrez :
> Le typage de variables en shell me laisse perplexe :-(

C'est très simple. En shell (historique) tout est chaine de caractères.
Donc il N'y a PAS de typage.
En effet lorsque l'on appel une commande, écrite en C par exemple,
les arguments sont toujours des tableaux de caractères (le shell
est la glue pour utiliser tous ces programmes).

Avec les autres shells, il y a quelques petits raffinements qui rendent
les choses plus... compliquées :-)
Avec bash, la commande interne "declare" permet de renseigner le "type"
d'une variable. Cela introduit la notion de contexte d'évaluation
(comme en Perl).

  declare -i a; a=1; let a++; expr $a + 1

  Je << devine >> que a est représenté par un int (sinon ce ne serait
que du sucre syntaxique inutile) et que toutes manipulations en dehors
d'une commande interne entraine une conversion automatique vers
une chaine de caractères. Donc l'utilisation de << declare -i >> n'est
rentable que si l'on effectue beaucoup de calculs AVEC les commandes
internes de bash (pas de expr).

  Ma conclusion est que cela complique bash pour un bénéfice peu évident.
Le calcul est exceptionnel en bash et au pire il est toujours possible
d'écrire un fichier de calculs et d'appeler une commande externe pour
le traiter.
  Le shell est une glue et non un langage de programmation aux
abstractions compliquées. Faire appel à des outils exterieurs au
langage devrait être un réflexe pour le programmeur shell (et c'est
ce que l'on fait à chaque appel à sed, awk , perl, cut, expr, ls, ...)

mcoolive.

Reply via email to