<?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>Wheeg : Linux à votre service ! &#187; shell</title>
	<atom:link href="http://wheeg.fr/category/shell/feed/" rel="self" type="application/rss+xml" />
	<link>http://wheeg.fr</link>
	<description>Linux par des professionnels pour vous simplifier la vie</description>
	<lastBuildDate>Thu, 06 Aug 2009 10:46:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Alias et paramètres en ligne de commande</title>
		<link>http://wheeg.fr/2009/08/06/alias-et-parametres-en-ligne-de-commande/</link>
		<comments>http://wheeg.fr/2009/08/06/alias-et-parametres-en-ligne-de-commande/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 10:40:22 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.wheeg.com/?p=81</guid>
		<description><![CDATA[Voilà la solution pour faire un alias qui prenne en compte un paramètre&#160;: il faut savoir qu&#8217;un alias ne connait pas les paramètres qu&#8217;on lui passe. Un alias c&#8217;est vraiment, physiquement parlant, un &#171;&#160;remplacer&#160;&#187; de l&#8217;ordre que vous tapez. Donc utiliser alias qui prendrait en compte un argument qu&#8217;on lui passe&#160;? C&#8217;est bien simple : [...]]]></description>
			<content:encoded><![CDATA[<p>Voilà la solution pour faire un alias qui prenne en compte un paramètre&nbsp;: il faut savoir qu&#8217;un alias ne connait pas les paramètres qu&#8217;on lui passe. Un alias c&#8217;est vraiment, physiquement parlant, un &laquo;&nbsp;remplacer&nbsp;&raquo; de l&#8217;ordre que vous tapez.</p>
<p>Donc utiliser alias qui prendrait en compte un argument qu&#8217;on lui passe&nbsp;?<br />
C&#8217;est bien simple : c&#8217;est impossible. Mais on peut très facilement contourner cela.</p>
<p>Exemple : je développe en C, je veux tout le temps :</p>
<ol>
<li>reformatter le fichier C avant de l&#8217;éditer avec la ligne&nbsp;:<br />
<code>indent -kr -nut {nom du fichier}</code></li>
<li>afficher ce fichier avec vim&nbsp;:<br />
<code>vim {nom du fichier}</code></li>
</ol>
<p>La ligne de commande est donc toujours :<br />
<code>indent -kr -nut {nom du fichier} &#038;&#038; vim {nom du fichier}</code></p>
<p>J&#8217;ai pensé faire un alias qui ressemblerait à cela&nbsp;:<br />
<code>alias vimi="indent -kr -nut $1 &#038;&#038; vim $1"</code><br />
Bien évidemment ça ne fonctionnera jamais.</p>
<p>Alors j&#8217;ai fait un tout petit script qui fonctionne très bien&nbsp;:<br />
<code>#!/bin/bash<br />
case $# in<br />
1) indent -kr -nut $1 &#038;&#038; vim $1 ;;<br />
*) echo "$0 {nom de fichier source .c / .h} ";;<br />
esac<br />
</code></p>
<p>Et tout fonctionne&nbsp;!<br />
Pour la note&nbsp;: <code>indent -kr -nut {nom de fichier source .c / .h}</code> signifie &laquo;&nbsp;indenter le fichier C selon les concepts de Kernighan &#038; Ritchie, et ne pas mettre de tabulations, mais des espaces&nbsp;&raquo;. Pourquoi cela&nbsp;? J&#8217;ai développé un module <a href="http://httpd.apache.org/">Apache</a>, et pour le faire proprement, j&#8217;ai suivi leurs directives&nbsp;: Kernighan &#038; Ritchie, et ne pas mettre de tabulations, mais des espaces, afin de me forcer à être habitué à lire du code d&#8217;une certaine façon. Ce type d&#8217;indentation n&#8217;est pas mon préféré, mais au moins, si je lis du code source C qui n&#8217;est pas fait par moi, je m&#8217;y retrouve plus facilement.</p>
]]></content:encoded>
			<wfw:commentRss>http://wheeg.fr/2009/08/06/alias-et-parametres-en-ligne-de-commande/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

