Newer
Older
cours-unix-shell / output / shell / commandes.html
<!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 &amp;&amp; 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>\&gt;</code>, <code>\&lt;</code>, <code>\&gt;=</code>, <code>\&lt;=</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>&copy; CNRS 2023</p>
    </footer>
</body>

</html>