Passage en UTF-8 des fichiers TML, 1 : recodage
Last-change: ignore this commit
This commit is contained in:
parent
46474fbdc3
commit
bbc57c52cd
227 changed files with 25795 additions and 25795 deletions
|
@ -10,88 +10,88 @@
|
|||
|
||||
<h1><a name="variables">Les variables en shell</a></h1>
|
||||
|
||||
<h2>Qu'est-ce qu'une variable ?</h2>
|
||||
<h2>Qu'est-ce qu'une variable ?</h2>
|
||||
|
||||
<p>
|
||||
Une variable est l'assignation d'une étiquette à un contenu ; ce
|
||||
contenu, comme l'indique le mot « variable », peut changer
|
||||
autant que l'on veut ; l'assignation de l'étiquette à ce contenu,
|
||||
Une variable est l'assignation d'une étiquette à un contenu ; ce
|
||||
contenu, comme l'indique le mot « variable », peut changer
|
||||
autant que l'on veut ; l'assignation de l'étiquette à ce contenu,
|
||||
elle, est fixe, aussi longtemps que l'on ne dissout pas la
|
||||
variable. </p>
|
||||
|
||||
<p>
|
||||
La notion de variable est commune à presque tous les langages
|
||||
La notion de variable est commune à presque tous les langages
|
||||
informatiques, et en particulier aux langages de programmation. Ceux qui
|
||||
ont déjà manipulé des langages sont donc familiers avec cette
|
||||
notion. Pour les autres, un petit exemple les aidera peut-être à la
|
||||
ont déjà manipulé des langages sont donc familiers avec cette
|
||||
notion. Pour les autres, un petit exemple les aidera peut-être à la
|
||||
saisir.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mettons que vous programmiez un hachoir, comme nous le proposions sur la
|
||||
page consacrée au <a href="commande.html">shell en ligne de
|
||||
commande</a>. Un hachoir est un instrument dangereux, à ne pas mettre
|
||||
à la portée des enfants. Robert le jardinier, qui a conçu ce
|
||||
hachoir, veut être le seul à pouvoir l'utiliser, sans quoi le
|
||||
petit Émile pourrait se blesser en y mettant le doigt.</p>
|
||||
page consacrée au <a href="commande.html">shell en ligne de
|
||||
commande</a>. Un hachoir est un instrument dangereux, à ne pas mettre
|
||||
à la portée des enfants. Robert le jardinier, qui a conçu ce
|
||||
hachoir, veut être le seul à pouvoir l'utiliser, sans quoi le
|
||||
petit Émile pourrait se blesser en y mettant le doigt.</p>
|
||||
|
||||
<p> Ainsi, il va dire au programme <code>hachoir</code> de vérifier la
|
||||
<p> Ainsi, il va dire au programme <code>hachoir</code> de vérifier la
|
||||
variable <code>USER</code>, qui contient le nom de l'utilisateur. Si le
|
||||
nom « Robert » est associé à l'étiquette <code>USER</code>,
|
||||
alors le programme se met en route ; sinon, il dit à l'utilisateur
|
||||
de ne pas utiliser cet instrument sans la présence d'un adulte, et de
|
||||
bien regarder des deux côtés avant de traverser la rue.
|
||||
nom « Robert » est associé à l'étiquette <code>USER</code>,
|
||||
alors le programme se met en route ; sinon, il dit à l'utilisateur
|
||||
de ne pas utiliser cet instrument sans la présence d'un adulte, et de
|
||||
bien regarder des deux côtés avant de traverser la rue.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Certaines variables sont prédéfinies, par exemple
|
||||
<code>USER</code> ; mais on peut en créer autant que l'on veut. Par
|
||||
exemple, si Robert veut autoriser d'autres adultes que lui à utiliser
|
||||
son hachoir, il peut faire que le programme demande à l'utilisateur quel
|
||||
âge il a ; la réponse est enregistrée dans la variable
|
||||
<code>age</code> ; ensuite, le programme va examiner le contenu de
|
||||
Certaines variables sont prédéfinies, par exemple
|
||||
<code>USER</code> ; mais on peut en créer autant que l'on veut. Par
|
||||
exemple, si Robert veut autoriser d'autres adultes que lui à utiliser
|
||||
son hachoir, il peut faire que le programme demande à l'utilisateur quel
|
||||
âge il a ; la réponse est enregistrée dans la variable
|
||||
<code>age</code> ; ensuite, le programme va examiner le contenu de
|
||||
cette variable. Si <code>age >= 18</code>, alors le hachoir peut se
|
||||
mettre en route ; mais si <code>age < 18</code>, le hachoir
|
||||
mettre en route ; mais si <code>age < 18</code>, le hachoir
|
||||
refuse de se mettre en marche.
|
||||
</p>
|
||||
|
||||
<h2>Les variables en shell</h2>
|
||||
|
||||
<p>
|
||||
En shell, pour désigner le contenu d'une variable, on écrit le nom de la
|
||||
variable précédé du signe dollar. Exemple : <code>echo
|
||||
$HOME</code> affiche le nom du répertoire personnel de l'utilisateur,
|
||||
mémorisé par la variable <code>HOME</code>.
|
||||
En shell, pour désigner le contenu d'une variable, on écrit le nom de la
|
||||
variable précédé du signe dollar. Exemple : <code>echo
|
||||
$HOME</code> affiche le nom du répertoire personnel de l'utilisateur,
|
||||
mémorisé par la variable <code>HOME</code>.
|
||||
</p>
|
||||
|
||||
<h3>Les noms de variables</h3>
|
||||
|
||||
<p>
|
||||
Par convention, les variables relevant du système, comme
|
||||
Par convention, les variables relevant du système, comme
|
||||
<code>HOME</code>, <code>USER</code> et beaucoup d'autres, sont en
|
||||
majuscules, tandis que l'on recommande d'écrire en minuscules les
|
||||
variables que l'on se crée soi-même. On évite ainsi la désagréable
|
||||
majuscules, tandis que l'on recommande d'écrire en minuscules les
|
||||
variables que l'on se crée soi-même. On évite ainsi la désagréable
|
||||
surprise de remplacer une variable importante et de casser tout ou
|
||||
partie de son système.
|
||||
partie de son système.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Les noms de variables sont en effet sensibles à la casse :
|
||||
Les noms de variables sont en effet sensibles à la casse :
|
||||
<code>USER</code>, <code>user</code>, <code>User</code>,
|
||||
<code>uSeR</code> etc. sont des variables différentes.
|
||||
<code>uSeR</code> etc. sont des variables différentes.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Définir une variable</h3>
|
||||
<h3>Définir une variable</h3>
|
||||
|
||||
<p>
|
||||
La façon de donner une valeur à une variable varie selon le type de shell
|
||||
utilisé :
|
||||
La façon de donner une valeur à une variable varie selon le type de shell
|
||||
utilisé :
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>C-Shell</strong> (<code>csh</code>, <code>tcsh</code>,
|
||||
<code>lcsh</code>) : on utilise la commande <code>setenv</code> :
|
||||
<code>lcsh</code>) : on utilise la commande <code>setenv</code> :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
|
@ -101,7 +101,7 @@ bar</pre>
|
|||
|
||||
<p>
|
||||
Famille des <strong>Bourne Shell</strong> (<code>sh</code>, <code>bash</code>,
|
||||
<code>zsh</code>, <code>ksh</code>) : on utilise <code>export</code> :
|
||||
<code>zsh</code>, <code>ksh</code>) : on utilise <code>export</code> :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
|
@ -111,17 +111,17 @@ Famille des <strong>Bourne Shell</strong> (<code>sh</code>, <code>bash</code>,
|
|||
bar</pre>
|
||||
|
||||
<div class="attention">
|
||||
Comme vous pouvez le remarquer :
|
||||
Comme vous pouvez le remarquer :
|
||||
|
||||
<ul>
|
||||
|
||||
<li> pour <strong>définir</strong> le contenu d'une variable, on
|
||||
écrit simplement son nom, <strong>sans le
|
||||
signe $</strong> ;</li>
|
||||
<li> pour <strong>définir</strong> le contenu d'une variable, on
|
||||
écrit simplement son nom, <strong>sans le
|
||||
signe $</strong> ;</li>
|
||||
|
||||
<li> tandis que pour <strong>utiliser</strong> le contenu d'une
|
||||
variable, on fait précéder son nom du
|
||||
<strong>signe $</strong>. </li>
|
||||
variable, on fait précéder son nom du
|
||||
<strong>signe $</strong>. </li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -130,7 +130,7 @@ variable, on fait pr
|
|||
<h3>Les variables d'environnement</h3>
|
||||
|
||||
<p>
|
||||
Les valeurs des variables sont accessibles aux commandes lancées par le
|
||||
Les valeurs des variables sont accessibles aux commandes lancées par le
|
||||
shell. L'ensemble de ces valeurs constitue l'<em>environnement</em>.
|
||||
On peut aussi supprimer une variable de l'environnement avec
|
||||
<code>unsetenv</code> (C-Shell) ou <code>unset</code> (Bourne Shell).
|
||||
|
@ -141,84 +141,84 @@ Quelques variables d'environnement:
|
|||
</p>
|
||||
|
||||
<ul>
|
||||
<li><code>DISPLAY</code> : L'écran sur lequel les programmes X
|
||||
travaillent. Cette variable est souvent de la forme :
|
||||
<li><code>DISPLAY</code> : L'écran sur lequel les programmes X
|
||||
travaillent. Cette variable est souvent de la forme :
|
||||
<code>machine.somehost.somewhere:0.0</code> Si cette variable est vide,
|
||||
c'est qu'il n'y a pas d'affichage graphique possible. </li>
|
||||
<li><code>PRINTER</code> : pour les commandes d'impression. Contient le
|
||||
<li><code>PRINTER</code> : pour les commandes d'impression. Contient le
|
||||
nom de l'imprimante sur laquelle il faut envoyer vos fichiers. </li>
|
||||
<li><code>EDITOR</code> : utilisée par <code>mutt</code>,
|
||||
<li><code>EDITOR</code> : utilisée par <code>mutt</code>,
|
||||
<code>forum</code>, et beaucoup d'autres commandes. Contient le nom de
|
||||
votre éditeur de textes préféré. </li>
|
||||
<li><code>VISUAL</code> : la même chose qu'<code>EDITOR</code>. </li>
|
||||
<li><code>SHELL</code> : contient le nom de votre shell. </li>
|
||||
<li><code>HOME</code> : contient le nom de votre répertoire personnel.
|
||||
votre éditeur de textes préféré. </li>
|
||||
<li><code>VISUAL</code> : la même chose qu'<code>EDITOR</code>. </li>
|
||||
<li><code>SHELL</code> : contient le nom de votre shell. </li>
|
||||
<li><code>HOME</code> : contient le nom de votre répertoire personnel.
|
||||
</li>
|
||||
<li><code>USER</code> : contient votre nom de login. </li>
|
||||
<li><code>LOGNAME</code> : la même chose que <code>USER</code>. </li>
|
||||
<li><code>PATH</code> : contient une liste de répertoires dans lesquels
|
||||
<li><code>USER</code> : contient votre nom de login. </li>
|
||||
<li><code>LOGNAME</code> : la même chose que <code>USER</code>. </li>
|
||||
<li><code>PATH</code> : contient une liste de répertoires dans lesquels
|
||||
le shell va chercher les commandes.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Exercice : Assurez-vous que <code>/usr/local/games/bin</code> se trouve
|
||||
Exercice : Assurez-vous que <code>/usr/local/games/bin</code> se trouve
|
||||
bien dans votre PATH.
|
||||
</p>
|
||||
|
||||
<h2><a name="shvariables">Utiliser les variables dans un script</a></h2>
|
||||
|
||||
<p>
|
||||
Dans les scripts, on peut utiliser des variables définies à l'extérieur
|
||||
(avec <code>setenv</code> ou <code>export</code>), mais aussi définir ses
|
||||
variables locales propres au script. On donne une valeur à une variable avec
|
||||
Dans les scripts, on peut utiliser des variables définies à l'extérieur
|
||||
(avec <code>setenv</code> ou <code>export</code>), mais aussi définir ses
|
||||
variables locales propres au script. On donne une valeur à une variable avec
|
||||
une commande de la forme
|
||||
<code><em>nom-de-variable</em>=<em>valeur</em></code>. Les variables sont
|
||||
utilisées pour stocker des informations.
|
||||
utilisées pour stocker des informations.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
On a aussi des variables spéciales, initialisées automatiquement au
|
||||
début du script:
|
||||
On a aussi des variables spéciales, initialisées automatiquement au
|
||||
début du script:
|
||||
</p>
|
||||
|
||||
<table class="tableau">
|
||||
<tr>
|
||||
<td><code>$0</code></td>
|
||||
<td>Le nom de la commande (i.e. : du script)</td>
|
||||
<td>Le nom de la commande (i.e. : du script)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>$1</code>, <code>$2</code>, etc.</td>
|
||||
<td>Le premier, deuxième, etc, argument passés au script.</td>
|
||||
<td>Le premier, deuxième, etc, argument passés au script.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>$*</code></td>
|
||||
<td>La liste de tous les arguments passés au script.</td>
|
||||
<td>La liste de tous les arguments passés au script.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>$#</code></td>
|
||||
<td>Le nombre d'arguments passés au script.</td>
|
||||
<td>Le nombre d'arguments passés au script.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>$?</code></td>
|
||||
<td>Le code de retour de la dernière commande lancée.</td>
|
||||
<td>Le code de retour de la dernière commande lancée.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>$!</code> </td>
|
||||
<td>Le numéro de process de la dernière commande lancée en tâche de fond.</td>
|
||||
<td>Le numéro de process de la dernière commande lancée en tâche de fond.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>$$</code></td>
|
||||
<td>Le numéro de process du shell lui-même.</td>
|
||||
<td>Le numéro de process du shell lui-même.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<div class="metainformation">
|
||||
Basé sur un polycopié de Roberto Di Cosmo, Xavier Leroy et Damien Doligez.
|
||||
Modifications : Nicolas George, Baptiste Mélès.
|
||||
Dernière modification le <date value="$Date: 2007-07-17 10:03:44 $" />.
|
||||
Basé sur un polycopié de Roberto Di Cosmo, Xavier Leroy et Damien Doligez.
|
||||
Modifications : Nicolas George, Baptiste Mélès.
|
||||
Dernière modification le <date value="$Date: 2007-07-17 10:03:44 $" />.
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue