{"id":2734,"date":"2025-07-23T14:07:13","date_gmt":"2025-07-23T13:07:13","guid":{"rendered":"https:\/\/workboot.fr\/ciela\/?page_id=2734"},"modified":"2025-07-23T14:10:50","modified_gmt":"2025-07-23T13:10:50","slug":"td-script-shell-bash-factoriel","status":"publish","type":"page","link":"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/","title":{"rendered":"TD script shell bash factoriel"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">version 1: lin\u00e9aire <\/h2>\n\n\n\n<pre style='color:#1f1c1b;background-color:#ffffff;'>\n<span style='color:#898887;'>#!\/bin\/bash<\/span>\n\n<span style='color:#898887;'># V\u00e9rifie qu'un argument est fourni<\/span>\n<b>if<\/b> <b><span style='color:#644a9b;'>[<\/span><\/b> <span style='color:#0057ae;'>$#<\/span> <span style='color:#006e28;'>-ne<\/span> 1 <b><span style='color:#644a9b;'>]<\/span><\/b><b>;<\/b> <b>then<\/b>\n    <b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#bf0303;'>&quot;Usage: <\/span><span style='color:#0057ae;'>$0<\/span><span style='color:#bf0303;'> &lt;nombre&gt;&quot;<\/span>\n    <b><span style='color:#644a9b;'>exit<\/span><\/b> 1\n<b>fi<\/b>\n\n<span style='color:#898887;'># V\u00e9rifie que l'argument est un nombre positif<\/span>\n<b>if<\/b> <span style='color:#006e28;'>! <\/span><b>[[<\/b> <span style='color:#0057ae;'>$1<\/span> <span style='color:#006e28;'>=~<\/span> <span style='color:#006e28;'>^<\/span><span style='color:#ca60ca;'>[<\/span><span style='color:#ff5500;'>0<\/span><span style='color:#ca60ca;'>-<\/span><span style='color:#ff5500;'>9<\/span><span style='color:#ca60ca;'>]<\/span><span style='color:#006e28;'>+<\/span><span style='color:#ca60ca;'>$<\/span> <b>]]<\/b><b>;<\/b> <b>then<\/b>\n    <b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#bf0303;'>&quot;Erreur: L'argument doit \u00eatre un nombre entier positif.&quot;<\/span>\n    <b><span style='color:#644a9b;'>exit<\/span><\/b> 1\n<b>fi<\/b>\n\n<span style='color:#0057ae;'>n<\/span><span style='color:#ca60ca;'>=<\/span><span style='color:#0057ae;'>$1<\/span>\n<span style='color:#0057ae;'>factorial<\/span><span style='color:#ca60ca;'>=<\/span>1\n\n<span style='color:#898887;'># Calcul du factoriel<\/span>\n<b>for<\/b> <b>((<\/b> <span style='color:#0057ae;'>i<\/span><span style='color:#ca60ca;'>=<\/span><span style='color:#b08000;'>1<\/span><b>;<\/b> <span style='color:#0057ae;'>i<\/span><span style='color:#ca60ca;'>&lt;=<\/span><span style='color:#0057ae;'>n<\/span><b>;<\/b> <span style='color:#0057ae;'>i<\/span><span style='color:#ca60ca;'>++<\/span> <b>))<\/b><b>;<\/b> <b>do<\/b>\n    <span style='color:#0057ae;'>factorial<\/span><span style='color:#ca60ca;'>=<\/span><span style='color:#0057ae;'>$((<\/span><span style='color:#0057ae;'>factorial<\/span> <span style='color:#ca60ca;'>*<\/span> <span style='color:#0057ae;'>i))<\/span>\n<b>done<\/b>\n\n<b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#bf0303;'>&quot;Factoriel de <\/span><span style='color:#0057ae;'>$n<\/span><span style='color:#bf0303;'> = <\/span><span style='color:#0057ae;'>$factorial<\/span><span style='color:#bf0303;'>&quot;<\/span>\n<\/pre>\n\n\n\n\n<h3 class=\"wp-block-heading\">Analyser le code <\/h3>\n\n\n\n<h2 class=\"wp-block-heading\">Version 2, r\u00e9cursive<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">la fonction factorial  s&rsquo;appelle elle m\u00eame jusqu\u2019\u00e0 la solution<\/p>\n\n\n\n<pre style='color:#1f1c1b;background-color:#ffffff;'>\n<span style='color:#898887;'>#!\/bin\/bash<\/span>\n\n<span style='color:#898887;'># Fonction r\u00e9cursive pour calculer le factoriel<\/span>\n<span style='color:#644a9b;'>factorial()<\/span> <b>{<\/b>\n    <b><span style='color:#644a9b;'>local<\/span><\/b> <span style='color:#0057ae;'>n<\/span><span style='color:#ca60ca;'>=<\/span><span style='color:#0057ae;'>$1<\/span>\n    <span style='color:#898887;'># Cas de base : factoriel de 0 ou 1 vaut 1<\/span>\n    <b>if<\/b> <b><span style='color:#644a9b;'>[<\/span><\/b> <span style='color:#0057ae;'>$n<\/span> <span style='color:#006e28;'>-le<\/span> 1 <b><span style='color:#644a9b;'>]<\/span><\/b><b>;<\/b> <b>then<\/b>\n        <b><span style='color:#644a9b;'>echo<\/span><\/b> 1\n    <b>else<\/b>\n        <span style='color:#898887;'># Appel r\u00e9cursif : n! = n * (n-1)!<\/span>\n        <b><span style='color:#644a9b;'>local<\/span><\/b> <span style='color:#0057ae;'>prev<\/span><span style='color:#ca60ca;'>=<\/span><span style='color:#0057ae;'>$(<\/span><b><span style='color:#0095ff;'>factorial<\/span><\/b> <span style='color:#0057ae;'>$((<\/span><span style='color:#0057ae;'>n<\/span> <span style='color:#ca60ca;'>-<\/span> <span style='color:#b08000;'>1<\/span><span style='color:#0057ae;'>))<\/span><span style='color:#0057ae;'>)<\/span>\n        <b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#0057ae;'>$((<\/span><span style='color:#0057ae;'>n<\/span> <span style='color:#ca60ca;'>*<\/span> <span style='color:#0057ae;'>prev))<\/span>\n    <b>fi<\/b>\n<b>}<\/b>\n\n<span style='color:#898887;'># V\u00e9rification des arguments<\/span>\n<b>if<\/b> <b><span style='color:#644a9b;'>[<\/span><\/b> <span style='color:#0057ae;'>$#<\/span> <span style='color:#006e28;'>-ne<\/span> 1 <b><span style='color:#644a9b;'>]<\/span><\/b><b>;<\/b> <b>then<\/b>\n    <b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#bf0303;'>&quot;Usage: <\/span><span style='color:#0057ae;'>$0<\/span><span style='color:#bf0303;'> &lt;nombre&gt;&quot;<\/span>\n    <b><span style='color:#644a9b;'>exit<\/span><\/b> 1\n<b>fi<\/b>\n\n<b>if<\/b> <span style='color:#006e28;'>! <\/span><b>[[<\/b> <span style='color:#0057ae;'>$1<\/span> <span style='color:#006e28;'>=~<\/span> <span style='color:#006e28;'>^<\/span><span style='color:#ca60ca;'>[<\/span><span style='color:#ff5500;'>0<\/span><span style='color:#ca60ca;'>-<\/span><span style='color:#ff5500;'>9<\/span><span style='color:#ca60ca;'>]<\/span><span style='color:#006e28;'>+<\/span><span style='color:#ca60ca;'>$<\/span> <b>]]<\/b><b>;<\/b> <b>then<\/b>\n    <b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#bf0303;'>&quot;Erreur: L'argument doit \u00eatre un nombre entier positif.&quot;<\/span>\n    <b><span style='color:#644a9b;'>exit<\/span><\/b> 1\n<b>fi<\/b>\n\n<span style='color:#898887;'># Calcul et affichage du r\u00e9sultat<\/span>\n<span style='color:#0057ae;'>result<\/span><span style='color:#ca60ca;'>=<\/span><span style='color:#0057ae;'>$(<\/span><b><span style='color:#0095ff;'>factorial<\/span><\/b> <span style='color:#0057ae;'>$1<\/span><span style='color:#0057ae;'>)<\/span>\n<b><span style='color:#644a9b;'>echo<\/span><\/b> <span style='color:#bf0303;'>&quot;Factoriel de <\/span><span style='color:#0057ae;'>$1<\/span><span style='color:#bf0303;'> = <\/span><span style='color:#0057ae;'>$result<\/span><span style='color:#bf0303;'>&quot;<\/span>\n<\/pre>\n\n\n\n\n<h3 class=\"wp-block-heading\">Analyser le code <\/h3>\n","protected":false},"excerpt":{"rendered":"<p>version 1: lin\u00e9aire #!\/bin\/bash # V\u00e9rifie qu&rsquo;un argument est fourni if [ $# -ne 1 ]; then echo &quot;Usage: $0 &lt;nombre&gt;&quot; exit 1 fi # V\u00e9rifie que l&rsquo;argument est un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-2734","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TD script shell bash factoriel - workboot<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TD script shell bash factoriel - workboot\" \/>\n<meta property=\"og:description\" content=\"version 1: lin\u00e9aire #!\/bin\/bash # V\u00e9rifie qu&#039;un argument est fourni if [ $# -ne 1 ]; then echo &quot;Usage: $0 &lt;nombre&gt;&quot; exit 1 fi # V\u00e9rifie que l&#039;argument est un [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/\" \/>\n<meta property=\"og:site_name\" content=\"workboot\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-23T13:10:50+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/td-script-shell-bash-factoriel\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/td-script-shell-bash-factoriel\\\/\",\"name\":\"TD script shell bash factoriel - workboot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\"},\"datePublished\":\"2025-07-23T13:07:13+00:00\",\"dateModified\":\"2025-07-23T13:10:50+00:00\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/workboot.fr\\\/ciela\\\/td-script-shell-bash-factoriel\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"name\":\"workboot\",\"description\":\"Open Source, Open Minds \",\"publisher\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\",\"name\":\"workboot\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"width\":1024,\"height\":950,\"caption\":\"workboot\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TD script shell bash factoriel - workboot","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/","og_locale":"fr_FR","og_type":"article","og_title":"TD script shell bash factoriel - workboot","og_description":"version 1: lin\u00e9aire #!\/bin\/bash # V\u00e9rifie qu'un argument est fourni if [ $# -ne 1 ]; then echo &quot;Usage: $0 &lt;nombre&gt;&quot; exit 1 fi # V\u00e9rifie que l'argument est un [&hellip;]","og_url":"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/","og_site_name":"workboot","article_modified_time":"2025-07-23T13:10:50+00:00","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/","url":"https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/","name":"TD script shell bash factoriel - workboot","isPartOf":{"@id":"https:\/\/workboot.fr\/ciela\/#website"},"datePublished":"2025-07-23T13:07:13+00:00","dateModified":"2025-07-23T13:10:50+00:00","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/workboot.fr\/ciela\/td-script-shell-bash-factoriel\/"]}]},{"@type":"WebSite","@id":"https:\/\/workboot.fr\/ciela\/#website","url":"https:\/\/workboot.fr\/ciela\/","name":"workboot","description":"Open Source, Open Minds ","publisher":{"@id":"https:\/\/workboot.fr\/ciela\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/workboot.fr\/ciela\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/workboot.fr\/ciela\/#organization","name":"workboot","url":"https:\/\/workboot.fr\/ciela\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","width":1024,"height":950,"caption":"workboot"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/workboot.fr\/ciela\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"version 1: lin\u00e9aire #!\/bin\/bash # V\u00e9rifie qu'un argument est fourni if [ $# -ne 1 ]; then echo &quot;Usage: $0 &lt;nombre&gt;&quot; exit 1 fi # V\u00e9rifie que l'argument est un [&hellip;]","_links":{"self":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/2734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/comments?post=2734"}],"version-history":[{"count":2,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/2734\/revisions"}],"predecessor-version":[{"id":2738,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/2734\/revisions\/2738"}],"wp:attachment":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/media?parent=2734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}