<?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>sveshnikov.ru - это наилучший источник информации по теме unix perl shell и всего такого &#187; загогулина</title>
	<atom:link href="http://alexey.sveshnikov.ru/blog/tag/%d0%b7%d0%b0%d0%b3%d0%be%d0%b3%d1%83%d0%bb%d0%b8%d0%bd%d0%b0/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexey.sveshnikov.ru/blog</link>
	<description>bookmarks-on-tranquilizers</description>
	<lastBuildDate>Tue, 25 May 2010 20:30:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Пятничная загогулина (bash)</title>
		<link>http://alexey.sveshnikov.ru/blog/2008/04/11/zagogulina-bash-read/</link>
		<comments>http://alexey.sveshnikov.ru/blog/2008/04/11/zagogulina-bash-read/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 09:41:07 +0000</pubDate>
		<dc:creator>Alexey Sveshnikov</dc:creator>
				<category><![CDATA[SHELL]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[загогулины]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[загогулина]]></category>

		<guid isPermaLink="false">http://alexey.sveshnikov.ru/blog/2008/04/11/%d0%b7%d0%b0%d0%b3%d0%be%d0%b3%d1%83%d0%bb%d0%b8%d0%bd%d0%b0-%d0%bd%d0%b0-bash/</guid>
		<description><![CDATA[Ну вот, пришло время для очередной программерской загогулины. Следующий код работать не будет: #!/usr/bin/bash echo "one two three" &#124; read a b c echo " " Что в нем не так? Я ожидаю увидеть два ответа. Первый &#8212; это просто переписать этот код так, чтобы он заработал. И второй ответ &#8212; опционально &#8212; объяснение, почему [...]]]></description>
			<content:encoded><![CDATA[<p>Ну вот, пришло время для очередной программерской загогулины. Следующий код работать не будет:</p>
<p><code>#!/usr/bin/bash<br />
echo "one two three" | read a b c<br />
echo "<$a> <$b> <$c>"</code></p>
<p>Что в нем не так?</p>
<p>Я ожидаю увидеть два ответа. Первый &#8212; это просто переписать этот код так, чтобы он заработал. И второй ответ &#8212; опционально &#8212; объяснение, почему не работает в таком виде.</p>
<p>p.s. второго ответа я пока сам не знаю, поэтому буду с интересом ждать его от вас :)<br />
p.p.s. ответивший верно, как всегда &#8211; умничка (-ца (маловероятно)).</p>
<p><b>UPD:</b> На второй вопрос ответ уже есть:<br />
<quote>gds<br />
есть мнение, что переменные, прочитанные read, остаются в переменных “экземпляра” баша, запущенного для выполнения “read a b c”, и не попадают в родительский баш, запустивший “echo … | read a b c”.</quote></p>
<p>gds&#8217;у &#8211; респект!<br />
А я понял, что в следующий раз надо постить задачки посложнее.. </p>
<p><b>UPD2</b> <s>свое решение выложу сегодня в конце рабочего дня</s><br />
<b>UPD3</b> </p>
<p>Кажется, я нечаянно сорвал рабочий день моего <a href="http://curved-hands.blogspot.com">начальника</a>, но зато он мне прислал вот такое остроумное решение:<br />
<code>str=`echo "one two three" | (read a b c; echo "a=$a; b=$b; c=$c;") `<br />
eval "$str";<br />
echo "<$a> <$b> <$c>"</code></p>
<p>Петя, ты отжог :) </p>
<p>Но на самом деле все это можно сделать несколько проще &#8211; через &#8220;here doc&#8221;:<br />
<code>read a b c  <<<`echo "one two three"`<br />
echo "<$a> <$b> <$c>"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://alexey.sveshnikov.ru/blog/2008/04/11/zagogulina-bash-read/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
