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
Le 25 janvier 2016 à 17:30, benoit szczygiel Z.elec
<benoit at z-elec.com> a écrit :
>
>
> En fait si j'ai bien compris  16#${d} dit que la variable d est en hexa, et $(()) assure la "protection" du contenu, echo pour l'afficher.
> Merci pour tout
> Benoit

hum, non, tu as _presque_ compris à 50%



1)  "     16#${d} dit que la variable d est en hexa  "

Ooooouuuuuui ! Enfin presque. En réalité, non. Voir le point 2


Les trois règles Bash-Klub:
- n°1 : le shell est un processeur de texte
- n°2 : le shell est un processeur de texte
- n°3 : le shell est un processeur de texte

16#${d} ne dit pas que d est en hexa.


En revanche, lorsque shell va traiter ce code,
il va prendre le texte contenu dans la variable [d],
il va lui coller devant le préfixe 16#

_puis_

Quand la commande de développement arithmétique $(( )) va être appelée
sur ce texte => 16# collé à "texte contenu dans d",
cette commande va essayer d'en calculer la valeur décimale en
considérant que [d] contient bien le _texte_ décrivant une valeur
décimale.

La variable [d] contiendra uniquement du _texte_ , nom d'une coquille
(jeu de mots).!



2) " $(( )) assure la "protection" du contenu "


non.


Nom d'un petit pingouin manchot !   ( :-D private joke )


Mille milliards de mille sabords, mousaillon, lis un peu mieux ce que j'écris.

Quoi? J'écris trop ???  :-!


Bon enfin  je te disais dans un e-mail assez court :

==================================
Ensuite, en cherchant de même, tu trouveras:

 Développement arithmétique
       Le développement arithmétique permet de remplacer une
expression arithmétique par le résultat de son évaluation. Le  format
du développement arithmétique est : $((expression))

<!> Attention <!> $((expression)) est différent de $(commande)
==================================


D'ailleurs la "protection" comme tu dis, est possible, à différents
niveaux et contre différents ESI (Effets Secondaires Indésirables) :
- avec les accolades de variables
- avec les guillemets
- avec les apostrophes
- avec le backslash

puis:
- Il y a des cas où l'on veut regrouper les commandes  ( )
- substituer des commandes par leur résultat  $( )


Bref, le shell, faut pas s'en taper le coquillard! (jeu de mots) Il
faut LLMF (Lire Le Manuel Fantastique (Read The Fantastic Manual =
RTFM + Search The Fantastic Web = STFW)


__P

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