<!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">"</span><span class="va">$i</span><span class="st"> copié"</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">>></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">>></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">"Bonjour aussi."</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">"À bientôt."</span> <span class="kw">;;</span>
<span class="ex">*</span> ) <span class="bu">echo</span> <span class="st">"Je n'ai pas bien compris le paramètre </span><span class="dt">\"</span><span class="va">$1</span><span class="dt">\"</span><span class="st">."</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>© CNRS 2023</p>
</footer>
</body>
</html>