This repository has been archived by the owner on Feb 10, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLisezMoi.html
executable file
·31 lines (31 loc) · 2.81 KB
/
LisezMoi.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<title></title>
<style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<h2 id="introduction">Introduction</h2>
<p>Le code fourni a pour but de vous décharger du travail d'analyse d'une ligne de commande, avant son interprétation par le shell. Il propose une fonction <code>readcmd()</code> qui fournit le résultat de cette analyse.</p>
<p>Le source est fourni non pas à titre d'exemple (il n'est pas d'une clarté éblouissante), mais à titre de documentation (et de spécification :)) ; il n'est ni nécessaire, ni conseillé de le modifier pour réaliser le travail demandé : l'analyse réalisée est suffisante pour la syntaxe des commandes que votre shell doit interpréter.</p>
<p>Ce code est a priori tout à fait fiable, mais n'hésitez cependant pas à nous signaler ce qui vous apparaîtrait comme des anomalies, ou des lacunes dans la documentation.</p>
<h2 id="la-structure-cmdline">La structure <code>cmdline</code></h2>
<p>L'appel à readcmd() retourne une structure cmdline, qui contient le résultat de l'analyse de la ligne de commande pour le shell. Cette structure contient notamment :</p>
<ul>
<li>l'indication du fait que la commande doit être lancée en tâche de fond ou non</li>
<li>les redirections éventuelles</li>
<li>la décomposition de la ligne de commande en commandes élémentaires, et la décomposition de chaque commande en mots. Le champ <code>seq</code> référence le résultat de cette décomposition, qui est vu comme un tableau à deux dimensions [commandes élémentaires, mots de la commande]</li>
</ul>
<p><strong>Pour plus de détails, voir le fichier d'en-tête <code>readcmd.h</code>.</strong></p>
<p><strong>Exemples :</strong></p>
<ul>
<li>"ls -l" : seq[0][0] = "ls", seq[0][1] = "-l", seq[0][2] = NULL, seq[1] = NULL, backgrounded = NULL, in = NULL, out = NULL</li>
<li>"ls -l > toto" : seq[0][0] = "ls", seq[0][1] = "-l", seq[0][2] = NULL, seq[1] = NULL, backgrounded = NULL, in = NULL, out => "toto"</li>
<li>"ls | grep toto | wc -l" : seq[0][0] = "ls", seq[0][1] = NULL, seq[1][0] = "grep", seq[1][1] = "toto", seq[1][2] = NULL, seq[2][0] = "wc", seq[0][1] = "-l", seq[0][2] = NULL, seq[3] = NULL, backgrounded = NULL, in = NULL, out = NULL</li>
<li>"sleep 100 &" : seq[0][0] = "sleep", seq[0][1] = "20", backgrounded != NULL, in = NULL, out = NULL</li>
</ul>
</body>
</html>