Newer
Older
cours-unix-shell / output / shell / controle.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="structures-de-contrôle---shell---unix">Structures de contrôle - Shell - UNIX</h1>
        <h2 id="for">for</h2>
        <h3 id="syntaxe">Syntaxe</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">for</span> <span class="ex">var</span> [in liste]
        <span class="kw">do</span>
             <span class="ex">liste_commandes</span>
        <span class="kw">done</span></code></pre></div>
        <p>La variable <code>var</code> prend successivement les valeurs de la liste.<br />
        Si la liste est omise, <code>var</code> prend alors les valeurs passées en paramètres du script (<a href="./parametres.html#variables-spéciales"><code>$*</code></a>).</p>
        <h3 id="exemples">Exemples</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">for</span> <span class="ex">i</span>
        <span class="kw">do</span>
            <span class="bu">echo</span> <span class="va">$i</span>
        <span class="kw">done</span></code></pre></div>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">for</span> <span class="ex">i</span> in <span class="kw">`</span><span class="fu">ls</span><span class="kw">`</span>
        <span class="kw">do</span>
            <span class="fu">cp</span> <span class="va">$i</span> /dir/<span class="va">$i</span>
            <span class="bu">echo</span> <span class="st">&quot;</span><span class="va">$i</span><span class="st"> copié&quot;</span>
        <span class="kw">done</span></code></pre></div>
        <p>Il ne faut pas oublier les apostrophes inversées (ou quotes inverses) <code>`</code> qui forcent l'exécution du <code>ls</code>.</p>
        <h2 id="while">while</h2>
        <h3 id="syntaxe-1">Syntaxe</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">while</span> <span class="ex">commande</span>
        <span class="kw">do</span>
           <span class="ex">liste_commandes</span>
        <span class="kw">done</span></code></pre></div>
        <h3 id="exemple">Exemple</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">while</span> <span class="bu">read</span> <span class="va">a</span>
        <span class="kw">do</span>
          <span class="bu">echo</span> <span class="va">$a</span> <span class="op">&gt;&gt;</span> resultat.txt
          <span class="bu">echo</span> Appuyez sur Ctrl-D pour arrêter.
        <span class="kw">done</span></code></pre></div>
        <h2 id="until">until</h2>
        <h3 id="syntaxe-2">Syntaxe</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">until</span> <span class="ex">commande</span>
        <span class="kw">do</span>
           <span class="ex">liste_commandes</span>
        <span class="kw">done</span></code></pre></div>
        <h3 id="exemple-1">Exemple</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">until</span> ! <span class="bu">read</span> <span class="va">a</span>
        <span class="kw">do</span>
          <span class="bu">echo</span> <span class="va">$a</span> <span class="op">&gt;&gt;</span> resultat.txt
          <span class="bu">echo</span> Appuyez sur Ctrl-D pour arrêter.
        <span class="kw">done</span></code></pre></div>
        <h2 id="case">case</h2>
        <h3 id="syntaxe-3">Syntaxe</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">case</span> para<span class="kw"> in</span>
            choix1[<span class="kw">|</span>choix2] ... <span class="kw">)</span> <span class="ex">liste_commandes</span> <span class="kw">;;</span>
        <span class="kw">esac</span></code></pre></div>
        <h3 id="exemple-2">Exemple</h3>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">case</span> <span class="va">$1</span><span class="kw"> in</span>
             bonjour <span class="kw">)</span> <span class="bu">echo</span> <span class="st">&quot;Bonjour aussi.&quot;</span> <span class="kw">;;</span>
             <span class="ex">A+</span> <span class="kw">|</span> <span class="ex">a+</span> ) <span class="bu">echo</span> <span class="st">&quot;À bientôt.&quot;</span> <span class="kw">;;</span>
             <span class="ex">*</span> )       <span class="bu">echo</span> <span class="st">&quot;Je n&#39;ai pas bien compris le paramètre </span><span class="dt">\&quot;</span><span class="va">$1</span><span class="dt">\&quot;</span><span class="st">.&quot;</span><span class="kw">;;</span>
        <span class="kw">esac</span></code></pre></div>
        <p><a href="./conditions.html">Précédent</a> - <a href="./commandes.html">Suivant</a></p>
    </div>

    <footer>
        <p>&copy; CNRS 2023</p>
    </footer>
</body>

</html>