<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1></h1>
<nav>
<ul>
<li><a href="/output/README.html">Accueil</a></li>
<li><a href="/output/unix/README.html">UNIX</a></li>
<li><a href="/output/bases/README.html">Bases</a></li>
<li><a href="/output/commandes/README.html">Commandes</a></li>
<li><a href="/output/shell/README.html">Shell</a></li>
<li><a href="/output/sed/README.html">Sed</a></li>
<li><a href="/output/make/README.html">Make</a></li>
</ul>
</nav>
</header>
<div class="content">
<h1 id="commandes-diverses---shell---unix">Commandes diverses - Shell - UNIX</h1>
<h2 id="commandes">Commandes</h2>
<table>
<colgroup>
<col style="width: 14%" />
<col style="width: 85%" />
</colgroup>
<tbody>
<tr class="odd">
<td><code>#</code></td>
<td>commentaires (mais <code>#!/bin/sh</code> en début de fichier est le shebang)</td>
</tr>
<tr class="even">
<td><code>( commande )</code></td>
<td>exécute la commande dans un sous-shell</td>
</tr>
<tr class="odd">
<td><code>read a</code></td>
<td>lecture d'une entrée pendant l'exécution d'un script</td>
</tr>
<tr class="even">
<td><code>exit num</code></td>
<td>renvoie le statut du script au shell appelant</td>
</tr>
<tr class="odd">
<td><code>. script</code></td>
<td>inclusion et exécution du script dans le shell courant</td>
</tr>
<tr class="even">
<td><code>exec script</code></td>
<td>exécute le script dans un nouveau shell</td>
</tr>
<tr class="odd">
<td><code>cmd1 \|\| cmd2</code></td>
<td>séparateur conditionnel (<code>cmd2</code> est exécutée même si <code>cmd1</code> ne s'est pas exécutée correctement)</td>
</tr>
<tr class="even">
<td><code>cmd1 && cmd2</code></td>
<td>séparateur conditionnel (<code>cmd2</code> est exécutée seulement si <code>cmd1</code> s'est exécutée correctement)</td>
</tr>
<tr class="odd">
<td><code>set</code></td>
<td>liste de toutes les variables.</td>
</tr>
<tr class="even">
<td></td>
<td>Positionne les paramètres <code>$i</code> (<code>set a b c</code> positionne <code>$1</code> à <code>a</code>, <code>$2</code> à <code>b</code> et <code>$3</code> à <code>c</code>).</td>
</tr>
<tr class="odd">
<td><code>unset var</code></td>
<td>remise à zéro de la variable <code>var</code></td>
</tr>
<tr class="even">
<td><code>type cmde</code></td>
<td>indique la nature (et la localisaton) d'une commande</td>
</tr>
<tr class="odd">
<td><code>alias al='cmd'</code></td>
<td>crée une commande al équivalente à la commande <code>cmd</code> (qui peut être complexe)</td>
</tr>
<tr class="even">
<td><code>touch fichier</code></td>
<td>change la date de dernière modification du fichier. Si le fichier n'existe pas, crée un fichier vide.</td>
</tr>
</tbody>
</table>
<h2 id="expr">expr</h2>
<p><code>expr</code> exécute des opérations arithmétiques sur des entiers (l'opérateur peut être <code>+</code>, <code>-</code>, <code>\*</code>, <code>/</code>, <code>%</code>, <code>=</code>, <code>\></code>, <code>\<</code>, <code>\>=</code>, <code>\<=</code>, <code>!=</code>).</p>
<p>L'expression est une commande, donc pour affecter une opération à une variable, il faut forcer son exécution avec des antiquotes (<code>AltGr</code>-<code>7</code>) :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="va">a=</span><span class="kw">`</span><span class="fu">expr</span> <span class="va">$b</span> + <span class="va">$c</span><span class="kw">`</span></code></pre></div>
<blockquote>
<p>Si vous utilisez <code>bash</code>, il existe une syntaxe plus facile: <code>$((..))</code> (voir <a href="https://linuxize.com/post/bash-increment-decrement-variable/">How to Increment and Decrement Variable in Bash (Counter)</a>)</p>
</blockquote>
<p><a href="./controle.html">Précédent</a> - <a href="./tp.html">Suivant</a></p>
</div>
<footer>
<p>© CNRS 2023</p>
</footer>
</body>
</html>