<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=360884&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [Aide] Compréhension de commandes]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=360884</link>
		<description><![CDATA[Les sujets les plus récents dans [Aide] Compréhension de commandes.]]></description>
		<lastBuildDate>Tue, 24 Nov 2009 19:12:35 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Aide] Compréhension de commandes]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3093237#p3093237</link>
			<description><![CDATA[<p>Merci beaucoup pour ton aide qui m&#039;a été très utile !</p><p>Bonne soirée.</p>]]></description>
			<author><![CDATA[dummy@example.com (scoulep)]]></author>
			<pubDate>Tue, 24 Nov 2009 19:12:35 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3093237#p3093237</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Aide] Compréhension de commandes]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3092038#p3092038</link>
			<description><![CDATA[<p>Content d&#039;avoir pu aider!<br />Si l&#039;anglais ne te fait pas peur, voici un site indispensable pour le bash: <a href="http://tldp.org/LDP/abs/html/">http://tldp.org/LDP/abs/html/</a> (il se peut qu&#039;il existe une traduction française le cas échéant)</p><p><strong>$*</strong> : tout simplement la liste des arguments (à qq nuances près)<br /><strong>$#</strong> : tout simplement le nombre d&#039;arguments </p><p>Par défaut les arguments sont des chaines de caractères<br /><strong>declare -i resultat</strong> permet de déclarer la variable résultat comme un entier<br /><strong>resultat=$1</strong> le premier argument est donc mis dans la variable résultat et est considéré comme un entier<br /><strong>shift</strong> : supposons que l&#039;appel au script soit ./monscript.sh tata titi toto, avant le shift on a $1=tata $2=titi $3=toto et $#= 3<br />après le shift on a $1=titi $2=toto $#=2</p><p><strong>while [ $# -gt 0 ] </strong> tant que le nombre d&#039;argument (restant) est plus grand que 0 (gt=greater than)<br /><strong><br />resultat=$? </strong> resultat reçoit la valeur de sortie de la précédente commande <br />shift 2 décale les arguments de 2 ($1= l&#039;ancien $3, etc)</p><p>À+</p>]]></description>
			<author><![CDATA[dummy@example.com (sensini)]]></author>
			<pubDate>Tue, 24 Nov 2009 11:04:09 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3092038#p3092038</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Aide] Compréhension de commandes]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3090388#p3090388</link>
			<description><![CDATA[<p>Bonsoir et merci pour cette réponse très rapide. Grâce à vous, j&#039;ai enfin pu comprendre ce script de façon plus claire, et je vous en remercie.</p><p>Désolé de vous déranger une nouvelle fois, mais j&#039;ai un nouveau cas de commandes utilisant cette fois ci le &quot;shift&quot;, qui ne m&#039;est toujours pas très clair quant à son utilisation (j&#039;ai compris le principe de changement de variable, mais dans la pratique...) :</p><div class="quotebox"><blockquote><div><p>#!/bin/bash <br />clear <br />expression=<strong>$* </strong><br />echo -ne &quot;\n Evaluation de l&#039;expression : $*\n&quot; <br /><strong>declare -i resultat <br />resultat=$1 <br />shift </strong><br />while [<strong> $# -gt 0</strong> ] <br />do <br />echo -n &quot;calcul de $resultat $1 $2 = &quot; </p><p>case $1 in <br /> +)./additionneur.sh $resultat $2 ;; <br /> -)./soustracteur.sh $resultat $2 ;; <br /> x)./multiplieur.sh $resultat $2 ;; <br /> /)./diviseur.sh $resultat $2 ;; <br /> *)echo &quot;Erreur de syntaxe &quot;;exit 1 ;; <br />esac <br />resultat=<strong>$?</strong> <br />echo $resultat <br /><strong>shift 2</strong> <br />done <br />echo -e &quot;\n\t$expression = $resultat\n&quot;</p></div></blockquote></div><p>Je n&#039;ai pas mis les fonctions qui effectuent les opérations car je les ai compris.<br />Une nouvelle fois, j&#039;ai mis en gras ce que je ne comprends pas : je connais leur fonction, mais j&#039;ai encore un peu de mal à distinguer leur utilisation ici.</p><p>Je vous remercie par avance de votre aide.<br />Bonne soirée.<br />A bientôt.</p>]]></description>
			<author><![CDATA[dummy@example.com (scoulep)]]></author>
			<pubDate>Mon, 23 Nov 2009 17:51:44 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3090388#p3090388</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Aide] Compréhension de commandes]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3090144#p3090144</link>
			<description><![CDATA[<p>cut peut prendre plusieurs options dont <br />-d : choix du délimiteurs (-d: prend «:» comme délimiteur, -d&quot; &quot; prend l&#039;espace comme délimiteur etc)<br />-f : les colonnes à afficher<br /> | cut -d&quot; &quot; -f1 va donc prendre le premier champ (chaque champ étant séparé par une espace(</p><p>wc -l $1 affiche le nombre de ligne de $1, $1 étant le premier argument que tu as passé en ligne de commande<br />(./monscript.sh choses machin : $1=choses)</p><p>les backquotes servent à exécuter une commande (pour par exemple stocker la sortie dans une variable)</p><p><strong>nb_commandes=`wc -l $1 |cut -d&quot; &quot; -f1`</strong> : la variable nb_commandes contient donc le nombre de ligne du fichier (on est d&#039;accord que là le cut ne sert à rien puisqu&#039;il y a l&#039;option -l à wc)</p><br /><p><strong>menu=&quot;$menu $ch&quot;</strong> tu stockes menu, une espace, ch, dans la variable menu<br />par exemple si ch=ls et que menu=cat wc, menu devient «cat wc ls», tout simplement</p><p><strong>PS3=&quot;Entrez-votre choix : &quot;</strong> : il existe plusieurs variables de prompt en bash : PS1 est le prompt de la ligne de commande (par exemple toto@machine), PS3 sert&#160; de prompt pour la variable select. (essaye de changer sa valeur et regarde ce que ça change au script</p><p><strong>[0-9]*)if test $REPLY -gt $nb_commandes</strong> : dans le cas où la réponse est composée de chiffre ([0-9]*) on exécute if test $REPLY -gt $nb_commandes<br />-gt pour greater than (plus grand que)<br />donc si la réponse est un chiffre, mais plus grand que le nb de choix, erreur</p><p><strong>echo -en</strong> -n = ne pas sauter de ligne en fin d&#039;echo, -e = interpréter les \n, \t, etc</p><p><strong>$cde $2</strong> : exécute la commande stockée dans la variable cde sur le fichier passé en 2m argument (./monscript.sh choses machin : $2=machin)</p><p><strong>echo</strong> affiche « » rien, c&#039;est-à-dire saute une ligne</p><p><strong>exit $?</strong> termine le script avec le code de sortie de la dernière commande<br />exemple:<br />[540] &lt;u@h&gt;echo</p><p>[541] &lt;u@h&gt;echo $?<br />0<br />[542] &lt;u@h&gt;eho $?<br />bash: eho : commande introuvable<br />[543] &lt;u@h&gt;echo $?<br />127</p><p>Voilà qui devrait t&#039;aider à y voir un petit peu plus clair</p>]]></description>
			<author><![CDATA[dummy@example.com (sensini)]]></author>
			<pubDate>Mon, 23 Nov 2009 16:39:07 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3090144#p3090144</guid>
		</item>
		<item>
			<title><![CDATA[[Aide] Compréhension de commandes]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3090073#p3090073</link>
			<description><![CDATA[<p>Bonjour</p><p>En cours, nous travaillons actuellement sur les commandes de consoles Shell sous Ubuntu (9.10 je pense).</p><p>Nous devons réaliser un menu proposant de lister, supprimer, vider ou avoir des infos sur un fichier.<br />Voici la correction qu&#039;on nous a fourni :</p><div class="quotebox"><blockquote><div><p>#!/bin/bash<br />clear<br /><strong>nb_commandes=`wc -l $1 |cut -d&quot; &quot; -f1`</strong><br />while read choix<br />do<br />&#160; &#160; <strong>&#160; ch=`echo $choix|cut -d: -f1`<br />&#160; &#160; &#160; menu=&quot;$menu $ch&quot;</strong><br />done &lt;$1<br />echo -e &quot;\nQuelle action souhaitez-vous réaliser sur le fichier : $2?&quot;<br /><strong>PS3=&quot;Entrez-votre choix : &quot;</strong><br />select reponse in `echo $menu`<br />do<br />&#160; &#160; &#160; case $REPLY in<br />&#160; &#160; &#160; &#160; &#160; &#160; <strong>[0-9]*)if test $REPLY -gt $nb_commandes</strong><br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; then<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; echo -e &quot;\nChoix ($REPLY) non valide, recommencez&quot;<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; continue<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; fi;;<br />&#160; &#160; &#160; &#160; &#160; &#160; *) echo -e &quot;\nChoix $REPLY non valide, recommencez&quot;;continue;;<br />&#160; &#160; &#160; esac<br />&#160; &#160; &#160; clear<br />&#160; &#160; &#160; echo -e &quot;\n Vous avez choisi ($REPLY) : $reponse $2&quot;<br />&#160; &#160; &#160; while read commande<br />&#160; &#160; &#160; do<br />&#160; &#160; &#160; &#160; &#160; &#160;<strong> if test $reponse = `echo $commande|cut -d: -f1`</strong><br />&#160; &#160; &#160; &#160; &#160; &#160; then<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <strong>&#160; cde=`echo $commande|cut -d: -f2-`<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; echo -en &quot;\n\t==&gt; La commande exécutée est : &lt;&lt; $cde $2<br />&gt;&gt;\n\n\t&quot;<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $cde $2<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; echo<br />&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; exit $?</strong><br />&#160; &#160; &#160; &#160; &#160; &#160; fi<br />&#160; &#160; &#160; done &lt;$1<br />done</p></div></blockquote></div><p>Les bouts de code que je ne comprends pas sont en gras.<br />Pensant que l&#039;on devait débuter directement par la question, je ne comprends pas le premier bout de code que l&#039;on nous a donné avant la question.<br />Ensuite, je ne comprends pas la majorité des &quot;pipe cut&quot; qui viennent agrémenter la plupart des commandes.</p><p>je vous remercie par avance de votre aide.<br />Bonne soirée.<br />A bientôt.</p>]]></description>
			<author><![CDATA[dummy@example.com (scoulep)]]></author>
			<pubDate>Mon, 23 Nov 2009 16:10:56 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3090073#p3090073</guid>
		</item>
	</channel>
</rss>
