<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Shell: Use &amp;&amp; e &#124;&#124; ao invés de if/then/fi</title>
	<atom:link href="http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/feed/" rel="self" type="application/rss+xml" />
	<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/</link>
	<description>Programadores, uni-vos!</description>
	<lastBuildDate>Thu, 19 Jan 2012 11:51:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: [CC] If em 1 linha (shell script) &#171; Blog do Daniel Bauermann</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-74</link>
		<dc:creator>[CC] If em 1 linha (shell script) &#171; Blog do Daniel Bauermann</dc:creator>
		<pubDate>Tue, 03 Nov 2009 12:01:34 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-74</guid>
		<description>[...] este não seja o link mais específico para meu caso, mas foi o primeiro que encontrei e solucinou-me o problema. Além [...]</description>
		<content:encoded><![CDATA[<p>[...] este não seja o link mais específico para meu caso, mas foi o primeiro que encontrei e solucinou-me o problema. Além [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Habkost</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-73</link>
		<dc:creator>Eduardo Habkost</dc:creator>
		<pubDate>Tue, 19 Dec 2006 22:25:35 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-73</guid>
		<description>Sim, essa a razão a pegadinha. Mas é uma diferença entre o &lt;code&gt;if&lt;/code&gt; e o &lt;code&gt;&amp;&amp;&lt;/code&gt;, e o que tornou uma &quot;pegadinha&quot; para mim.

Então, corrigindo: no meu primeiro comentário, onde está &quot;quebra o &lt;code&gt;set -e&lt;/code&gt;&quot;, leia-se &quot;cuidado se usar &lt;code&gt;set -e&lt;/code&gt;, pois &lt;code&gt;&amp;&amp;&lt;/code&gt; não é exatamente igual ao &lt;code&gt;if&lt;/code&gt;&quot;.</description>
		<content:encoded><![CDATA[<p>Sim, essa a razão a pegadinha. Mas é uma diferença entre o <code>if</code> e o <code>&amp;&amp;</code>, e o que tornou uma &#8220;pegadinha&#8221; para mim.</p>
<p>Então, corrigindo: no meu primeiro comentário, onde está &#8220;quebra o <code>set -e</code>&#8220;, leia-se &#8220;cuidado se usar <code>set -e</code>, pois <code>&amp;&amp;</code> não é exatamente igual ao <code>if</code>&#8220;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eljunior</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-72</link>
		<dc:creator>eljunior</dc:creator>
		<pubDate>Tue, 19 Dec 2006 13:30:14 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-72</guid>
		<description>o &quot;echo fim&quot; não executou porque  o faz_teste retornou 1 como exit status (a funcao retorna o último exit status, neste caso, o exit status do &quot;[ -r /tmp/naoexiste ]&quot;.

o shell não abortou a execução por causa do &quot;[ -r /tmp/naoexiste ]&quot;, e sim por causa do &quot;faz_teste&quot;. para usar com segurança, você deve retornar o exit status em funções como essa. ;-)</description>
		<content:encoded><![CDATA[<p>o &#8220;echo fim&#8221; não executou porque  o faz_teste retornou 1 como exit status (a funcao retorna o último exit status, neste caso, o exit status do &#8220;[ -r /tmp/naoexiste ]&#8220;.</p>
<p>o shell não abortou a execução por causa do &#8220;[ -r /tmp/naoexiste ]&#8220;, e sim por causa do &#8220;faz_teste&#8221;. para usar com segurança, você deve retornar o exit status em funções como essa. ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Habkost</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-71</link>
		<dc:creator>Eduardo Habkost</dc:creator>
		<pubDate>Mon, 18 Dec 2006 20:50:53 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-71</guid>
		<description>É verdade que no caso comum &lt;code&gt;&amp;&amp;&lt;/code&gt; e &lt;code&gt;&#124;&#124;&lt;/code&gt; funcionam. O que aconteceu comigo foi uma pegadinha. Veja o exemplo abaixo:


$ cat a.sh
#!/bin/sh
set -e

faz_teste()
{
        [ -r /tmp/naoexiste ] &amp;&amp; echo existe
}

faz_teste
echo fim


E ao rodar o script:


$ ./a.sh
$


Nenhuma saída. Oops.  :)

Então não posso usar tão tranquilamente, assim. Eu já caí nessa pegadinha, e foi o que me levou a achar que &lt;code&gt;&amp;&amp;&lt;/code&gt; e &lt;code&gt;&#124;&#124;&lt;/code&gt; não funcionavam com &lt;code&gt;set -e&lt;/code&gt;.</description>
		<content:encoded><![CDATA[<p>É verdade que no caso comum <code>&amp;&amp;</code> e <code>||</code> funcionam. O que aconteceu comigo foi uma pegadinha. Veja o exemplo abaixo:</p>
<p>$ cat a.sh<br />
#!/bin/sh<br />
set -e</p>
<p>faz_teste()<br />
{<br />
        [ -r /tmp/naoexiste ] &amp;&amp; echo existe<br />
}</p>
<p>faz_teste<br />
echo fim</p>
<p>E ao rodar o script:</p>
<p>$ ./a.sh<br />
$</p>
<p>Nenhuma saída. Oops.  :)</p>
<p>Então não posso usar tão tranquilamente, assim. Eu já caí nessa pegadinha, e foi o que me levou a achar que <code>&amp;&amp;</code> e <code>||</code> não funcionavam com <code>set -e</code>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eljunior</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-70</link>
		<dc:creator>eljunior</dc:creator>
		<pubDate>Mon, 18 Dec 2006 11:51:35 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-70</guid>
		<description>usando set -e, o shell não aborta se o comando que falhar estiver numa lista de &amp;&amp; e &#124;&#124;.

pode usar tranquilamente os &amp;&amp; e &#124;&#124; usando set -e. :)</description>
		<content:encoded><![CDATA[<p>usando set -e, o shell não aborta se o comando que falhar estiver numa lista de &amp;&amp; e ||.</p>
<p>pode usar tranquilamente os &amp;&amp; e || usando set -e. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Osvaldo Santana Neto</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-69</link>
		<dc:creator>Osvaldo Santana Neto</dc:creator>
		<pubDate>Wed, 04 Oct 2006 18:00:56 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-69</guid>
		<description>Eu não conhecia o &#039;set -e&#039;, acho que essa opção deveria se transformar em uma outra dica sobre shell *e* citar que ela impede que essa dica do Aurélio funcione...</description>
		<content:encoded><![CDATA[<p>Eu não conhecia o &#8216;set -e&#8217;, acho que essa opção deveria se transformar em uma outra dica sobre shell *e* citar que ela impede que essa dica do Aurélio funcione&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Habkost</title>
		<link>http://codare.net/2006/10/03/shell-use-e-e-ou-ao-inves-de-ifthenfi/#comment-68</link>
		<dc:creator>Eduardo Habkost</dc:creator>
		<pubDate>Wed, 04 Oct 2006 12:51:02 +0000</pubDate>
		<guid isPermaLink="false">http://codare.wordpress.com/2006/10/03/use-e-ao-inves-de-ifthenfi/#comment-68</guid>
		<description>Eu gosto de usar set -e nos meus scripts. Nesse caso, usar &amp;&amp; e &#124;&#124; faz com que o script aborte caso a condição seja falsa.

Assim, eu costumo usar sempre if..then..fi, porque não abro mão do set -e, e não gostaria de usar algo como a &amp;&amp; b &#124;&#124; :.

O que me aconselha?</description>
		<content:encoded><![CDATA[<p>Eu gosto de usar set -e nos meus scripts. Nesse caso, usar &amp;&amp; e || faz com que o script aborte caso a condição seja falsa.</p>
<p>Assim, eu costumo usar sempre if..then..fi, porque não abro mão do set -e, e não gostaria de usar algo como a &amp;&amp; b || :.</p>
<p>O que me aconselha?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

