<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stlenn &#187; Bash</title>
	<atom:link href="https://blog.developpez.com/stlenn/pcategory/linux/bash/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/stlenn</link>
	<description>Blog de Pierre-Yves Le Dévéhat - Développeur d&#039;applications</description>
	<lastBuildDate>Fri, 26 Jul 2013 09:53:15 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Interpréter les options d&#8217;une commande en Bash</title>
		<link>https://blog.developpez.com/stlenn/p12006/linux/bash/interpreter-les-options-dune-commande-en-bash</link>
		<comments>https://blog.developpez.com/stlenn/p12006/linux/bash/interpreter-les-options-dune-commande-en-bash#comments</comments>
		<pubDate>Thu, 30 May 2013 07:54:50 +0000</pubDate>
		<dc:creator><![CDATA[Pierre-Yves Le Dévéhat]]></dc:creator>
				<category><![CDATA[Bash]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/stlenn/?p=27</guid>
		<description><![CDATA[Voici une petite trame de code permettant de construire un script Bash prenant des options de type &#8211;opt -R -odp. Ici, il s&#8217;agit, selon les options &#8211;help, &#8211;recursif, &#8211;class, &#8211;jar, &#8211;war et/ou selon leurs versions courtes -hRcjw, de renseigner les &#8230; <a href="https://blog.developpez.com/stlenn/p12006/linux/bash/interpreter-les-options-dune-commande-en-bash">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Voici une petite trame de code permettant de construire un script Bash prenant des options de type &#8211;opt -R -odp.<br />
Ici, il s&rsquo;agit, selon les options &#8211;help, &#8211;recursif, &#8211;class, &#8211;jar, &#8211;war et/ou selon leurs versions courtes -hRcjw, de renseigner les variables $RECURSIF, $RES, $CLASS, $JAR et $WAR.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">let &quot;lim=$#+1&quot;<br />
<br />
while [ $OPTIND != $lim ]<br />
do<br />
<br />
<br />
&nbsp; &nbsp; # Traite une suite d'option, modifie les valeurs des variables correspondant en conséquence.<br />
&nbsp; &nbsp; while getopts &quot;hRcjw-:&quot; OPTION<br />
&nbsp; &nbsp; do<br />
&nbsp; &nbsp; &nbsp; &nbsp; # Si l'option est &quot;-&quot; c'est que l'option est de type --opt. Du coup, on isole la partie de OPTARG qui correspond au nom de l'option, c'est à dire ce qui est avant le &quot;=&quot; éventuel (et évidemment les &quot;--&quot; qui ne sont pas dans OPTARG). On teste sur cette base.<br />
&nbsp; &nbsp; &nbsp; &nbsp; # Dans ${OPTARG%%=*} on supprime la plus grande occurence de &quot;=*&quot; à partir de la fin de OPTARG.<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; [ $OPTION = &quot;-&quot; ] &amp;amp;&amp;amp; case &quot;${OPTARG%%=*}&quot; in <br />
&nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; help) OPTION=&quot;h&quot; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recursif) OPTION=&quot;R&quot; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; class) OPTION=&quot;c&quot; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jar) OPTION=&quot;j&quot; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; war) OPTION=&quot;w&quot; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Pour récupérer un vrai OPTARG au cas échéant :<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # OPTARG=&quot;${OPTARG#*=}&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # On supprime la plus petite occurence de &quot;*=&quot; à partir du début de OPTARG.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Pour résumer : avec la forme ${chaineXsous-chaine}<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # X peut être de quatre formes :<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &quot;%&quot; supprime la plus petite occurence de sous-chaine à partir de la fin de chaine.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &quot;%%&quot; plus grande occurence à partir de la fin.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &quot;#&quot; &nbsp;plus petite occurence à partir du début.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &quot;##&quot; plus grande occurence à partir du début.<br />
&nbsp; &nbsp; &nbsp; &nbsp; esac<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; case $OPTION in<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; h)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; usage<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RECURSIF=true<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RES=$RES&quot; récursif&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CLASS=true<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RES=$RES&quot; class&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; j)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; JAR=true<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RES=$RES&quot; jar&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; w)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WAR=true<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RES=$RES&quot; war&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; usage<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; esac&nbsp; &nbsp; <br />
&nbsp; &nbsp; done<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; let &quot;OPTIND++&quot;<br />
<br />
done</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
