<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bash on FtBx.fr</title><link>https://ftbx.fr/tags/bash/</link><description>Recent content in Bash on FtBx.fr</description><image><title>FtBx.fr</title><url>https://ftbx.fr/images/placeholder-image.jpg</url><link>https://ftbx.fr/images/placeholder-image.jpg</link></image><generator>Hugo -- 0.146.6</generator><language>fr</language><copyright>2025 ftbx.fr - This work is licensed under CC BY-NC-SA 4.0</copyright><lastBuildDate>Sun, 05 Nov 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://ftbx.fr/tags/bash/index.xml" rel="self" type="application/rss+xml"/><item><title>shell set -euo pipefail : l'option qui m'a sauvé 100 heures de debug</title><link>https://ftbx.fr/posts/shell-set-euo-pipefail-option-qui-ma-sauve-100-heures-debug/</link><pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate><guid>https://ftbx.fr/posts/shell-set-euo-pipefail-option-qui-ma-sauve-100-heures-debug/</guid><description>&lt;p>&lt;code>set -euo pipefail&lt;/code> devrait être la première ligne de tout script shell
non trivial après le shebang.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="nb">set&lt;/span> -euo pipefail
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Voilà pourquoi :&lt;/p>
&lt;p>&lt;strong>&lt;code>set -e&lt;/code>&lt;/strong> : le script s&amp;rsquo;arrête à la première commande qui échoue.
Sans ça, le script continue comme si de rien n&amp;rsquo;était après un &lt;code>cd /tmp/inexistant&lt;/code>.
J&amp;rsquo;ai perdu des heures à comprendre pourquoi un &lt;code>rm -rf&lt;/code> s&amp;rsquo;exécutait
dans le mauvais dossier à cause d&amp;rsquo;un &lt;code>cd&lt;/code> silencieusement raté.&lt;/p></description></item></channel></rss>