28.02.2013 Views

Guide Bash du débutant - Index général des HOWTOs et mini ...

Guide Bash du débutant - Index général des HOWTOs et mini ...

Guide Bash du débutant - Index général des HOWTOs et mini ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Une chaîne entre guillem<strong>et</strong>s précédée par un $ sera traitée selon la norme en vigueur. Si c<strong>et</strong>te norme<br />

est celle de « C » ou de « POSIX », le $ est ignoré. Si la chaîne est transposée avec remplacement, le<br />

résultat est entre guillem<strong>et</strong>s.<br />

4. Le processus d'expansion de Shell<br />

4.1. Généralité<br />

Après que la commande ait été décomposée en éléments (voir la Section 4.1.1, « La syntaxe Shell »),<br />

ces éléments ou mots sont interprétés ou autrement dit résolus. Il y a 8 sortes d'expansion effectuées,<br />

lesquelles vont être traitées dans les sections suivantes dans l'ordre où le processus opère.<br />

Après toutes les sortes d'expansions effectuées, guillem<strong>et</strong>s <strong>et</strong> apostrophes sont éliminés.<br />

4.2. L'expansion d'accola<strong>des</strong><br />

L'expansion d'accolade est un mécanisme par lequel <strong>des</strong> chaînes peuvent être arbitrairement<br />

générées. Les patrons suj<strong>et</strong>s à expansion prennent la forme d'un préfixe optionnel, suivi d'une série de<br />

chaînes séparées par <strong>des</strong> virgules, le tout à l'intérieur d'accola<strong>des</strong>, suivi par un suffixe optionnel. Le<br />

préfixe enrichit chaque chaîne au début, puis à son tour le suffixe enrichit la fin, résultant en une<br />

expansion de gauche à droite.<br />

L'expansion d'accola<strong>des</strong> peut être imbriquée. Le résultat <strong>des</strong> chaînes ainsi obtenues n'est pas trié ;<br />

l'ordre de gauche à droite est préservé.<br />

franky ~> echo sp{el,il,al}l<br />

spell spill spall<br />

L'expansion d'accolade est effectuée avant tout autres, <strong>et</strong> tout caractère spécial en vue d'un autre type<br />

d'expansion est préservé dans ce résultat. C'est strictement textuel. <strong>Bash</strong> n'applique aucune<br />

interprétation syntaxique au contexte de l'expansion ou au texte entre accola<strong>des</strong>. Pour éviter <strong>des</strong><br />

conflits avec l'expansion de paramètres, la chaîne « ${ » n'est pas éligible à l'expansion d'accolade.<br />

Une forme correcte d'expansion d'accola<strong>des</strong> doit contenir une accolade ouvrante <strong>et</strong> fermante non<br />

protégée, <strong>et</strong> au moins une virgule non protégée. Toute forme d'expansion d'accolade incorrecte est<br />

laissée telle quelle.<br />

4.3. L'expansion <strong>du</strong> tilde<br />

Si un mot commence par un tilde non protégé (« ~ »), tous les caractères jusqu'au premier slash<br />

non-protégé (ou tous les caractères si il n'y a pas de slash non-protégé) sont considérés comme un<br />

préfixe tilde. Si aucun <strong>des</strong> caractères dans le préfixe tilde n'est protégé, ces caractères qui suivent le<br />

tilde sont considérés comme un nom de connection possible. Si ce nom de connection est la chaîne<br />

nulle, le tilde est remplacé par la valeur de la variable Shell HOME. Si HOME n'est pas défini, le répertoire<br />

racine de l'utilisateur exécutant le Shell est utilisé à la place. Sinon, le préfixe tilde est remplacé par le<br />

répertoire racine associé au nom de connection spécifié.<br />

Si le préfixe tilde est « ~+ », la valeur de la variable Shell PWD remplace le préfixe tilde. Si le préfixe<br />

tilde est « ~- », la valeur de la variable Shell OLDPWD, si définie, s'y substitue.<br />

Si les caractères suivant le tilde dans le préfixe consistent en un nombre N, optionnellement préfixé<br />

par « + » ou « - », le préfixe tilde est remplacé par l'élément correspondant dans la pile de répertoire,<br />

comme il serait affiché par l'intégrée dirs invoquée avec, comme argument, le caractère suivant le<br />

tilde dans le préfixe tilde. Si le préfixe tilde, sans le tilde, consiste en un nombre sans signe « + » ou<br />

« - », « + » est implicite.<br />

Si le nom de connection est invalide, ou si l'expansion de tilde échoue, le mot est laissé tel quel.<br />

Chaque assignation de variable donne lieu à un contrôle sur la présence d'un préfixe tilde<br />

non-protégé qui suit immédiatement un « : » ou un « = ». Dans ce cas l'expansion <strong>du</strong> tilde se

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!