<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Объединение команд и обработка выходных данных в shell]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=38619&amp;type=atom" />
	<updated>2017-04-18T06:23:21Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=38619</id>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=454468#p454468" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>touch `uname -r`</p></blockquote></div><div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>xxx 2&gt;home.txt<br />$ xxx 2&gt;&amp;1 &gt;home.txt</p></blockquote></div><p>Закинул наверх</p></blockquote></div><p>На самом деле для отправки stdout и stderr в файл достаточно<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ xxx &amp;&gt;home.txt</div></p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2017-04-18T06:23:21Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=454468#p454468</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453630#p453630" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>touch `uname -r`</p></blockquote></div><div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>xxx 2&gt;home.txt<br />$ xxx 2&gt;&amp;1 &gt;home.txt</p></blockquote></div><p>Закинул наверх</p>]]></content>
			<author>
				<name><![CDATA[DiabloPC]]></name>
				<uri>https://linuxforum.ru/profile.php?id=35386</uri>
			</author>
			<updated>2017-03-18T16:28:42Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453630#p453630</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453378#p453378" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>В теримнологии shell &amp; UNIX такие вещи как process (программа, утилита, ...) и job - это принципиально разные вещи.</p></blockquote></div><p>Да это и так понятно, одно следует из другого. это я про процессы и задания.</p>]]></content>
			<author>
				<name><![CDATA[i2ks]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16</uri>
			</author>
			<updated>2017-03-15T12:17:47Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453378#p453378</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453376#p453376" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>i2ks пишет:</cite><blockquote><p>я к тому, то что можно посмотреть как там это реализованно.</p></blockquote></div><p>Зачем? (посмотреть) <img src="https://linuxforum.ru/img/smilies/ap.gif" alt="ap" /> <br />Мне, как и всякому, кто минимально знает программирование C, POSIX API, fork() и т.д. - это и так абсолютно прозрачно. <br />А тем, кто не знает C-программирование и POSIX ... остаётся только поверить на слово. <img src="https://linuxforum.ru/img/smilies/aw.gif" alt="aw" /> </p><div class="quotebox"><blockquote><p>GNU parallel is a shell tool for executing <strong>jobs</strong> in parallel using one or more computers.</p></blockquote></div><p>В теримнологии shell &amp; UNIX такие вещи как <strong>process</strong> (программа, утилита, ...) и <strong>job</strong> - это принципиально разные вещи.</p>]]></content>
			<author>
				<name><![CDATA[Olej]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20875</uri>
			</author>
			<updated>2017-03-15T12:05:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453376#p453376</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453375#p453375" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>Да нет - это совершенно о другом:</p></blockquote></div><p>я к тому, то что можно посмотреть как там это реализованно.<br />Там же все на перле на скольо я вижу.</p>]]></content>
			<author>
				<name><![CDATA[i2ks]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16</uri>
			</author>
			<updated>2017-03-15T11:49:40Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453375#p453375</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453374#p453374" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>i2ks пишет:</cite><blockquote><div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>Вот, придумал как сделать более наглядный пример параллельности:</p></blockquote></div><p><a href="http://www.gnu.org/software/parallel/">http://www.gnu.org/software/parallel/</a> наглядней не бывает :-)</p></blockquote></div><p>Да нет - это <strong>совершенно о другом</strong>:<br /></p><div class="quotebox"><blockquote><p>GNU parallel is a shell tool for executing jobs in parallel ...</p></blockquote></div><p> <br />Это об отдельной частной утилите, <strong>никакого</strong> отношения к обсуждаемой теме не имеющей.</p>]]></content>
			<author>
				<name><![CDATA[Olej]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20875</uri>
			</author>
			<updated>2017-03-15T11:36:09Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453374#p453374</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453373#p453373" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>Вот, придумал как сделать более наглядный пример параллельности:</p></blockquote></div><p><a href="http://www.gnu.org/software/parallel/">http://www.gnu.org/software/parallel/</a> наглядней не бывает :-)</p>]]></content>
			<author>
				<name><![CDATA[i2ks]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16</uri>
			</author>
			<updated>2017-03-15T11:00:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453373#p453373</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453368#p453368" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>Пример, по-моему, как-раз был хорош.</p></blockquote></div><p>Неособо.... Там, если вдуматься в логику работы получается немного не то... <br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">echo $i | grep -E [0-9] &amp;&amp; sleep1</div> Здесь получается pipe, затем, после успешного выполнения одного прохода, он завершается и выполняется <strong>sleep</strong>, а затем создается новый конвеер....<br />...по идее так....<br /><strong>*** Добавлено: 15th Mar 2017 11:35:37 am ***</strong></p><div class="quotebox"><cite>Olej пишет:</cite><blockquote><p> непонятно что писать в контекст поиска</p></blockquote></div><p>вотЬ вотЬ, собственно из-за этого у меня минут 20 и занял поиск того что в шапке&nbsp; <img src="https://linuxforum.ru/img/smilies/be.gif" alt="be" /><br /><strong>*** Добавлено: 15th Mar 2017 11:41:40 am ***</strong></p><div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>Как легко видеть, это скопировано из выполняющихся терминалов ... а не пересказано от большого ума.</p></blockquote></div><p>Вот, придумал как сделать более наглядный пример параллельности в цикле:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">for i in 1 2 3 4 5; do $(echo echo $i; sleep 1) | grep -E [0-9]; done</div></p>]]></content>
			<author>
				<name><![CDATA[DiabloPC]]></name>
				<uri>https://linuxforum.ru/profile.php?id=35386</uri>
			</author>
			<updated>2017-03-15T09:41:40Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453368#p453368</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453367#p453367" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>Походу прийдется =)</p></blockquote></div><p>Зачем же вы удалили приводимый вами пример?<br />Пример, по-моему, как-раз был хорош.</p><p>P.S. Как-раз <strong>синтаксис</strong> командной <strong>строки</strong> shell/bash стоило бы упорядочить и свести в краткую внятную справку, потому что это вещь хуже всего описанная по учебникам, и по которой трудно найти справку в поисковиках ... потому что непонятно что писать в контекст поиска.</p>]]></content>
			<author>
				<name><![CDATA[Olej]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20875</uri>
			</author>
			<updated>2017-03-15T09:27:45Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453367#p453367</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453366#p453366" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>Учи матчасть!</p></blockquote></div><p>Походу прийдется =)</p>]]></content>
			<author>
				<name><![CDATA[DiabloPC]]></name>
				<uri>https://linuxforum.ru/profile.php?id=35386</uri>
			</author>
			<updated>2017-03-15T09:09:06Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453366#p453366</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453363#p453363" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>В конвеере они выполняются последавательно, передавая STDOUT, на STDIN следующей програмы.</p></blockquote></div><p>Ну как же так? <img src="https://linuxforum.ru/img/smilies/ai.gif" alt="ai" /> <br />Вы таки сами себе так сильно противоречите (как сказали бы в Одессе):<br />- если бы <strong>процессы</strong> выполнялись последовательно...<br />- то при выполнении предыдущей - <strong>ещё</strong> нет никакого STDIN последующей ... некуда ничего <strong>передавать</strong>...<br />- а после завершения предыдущей - <strong>уже</strong> нет никакого STDOUT, он уже закрыт и ликвидирован ... откуда <strong>передавать</strong>.</p><p>Конвейеры в коде реализуются через POSIX API pipe, который может работать только между родственными <strong>параллельными</strong> процессами.<br /><strong>*** Добавлено: 15.03.2017 11:21:03 ***</strong></p><div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>Olej,</p></blockquote></div><p>Учи матчасть! <img src="https://linuxforum.ru/extensions/bbcode_smiles/img/bd.gif" alt="bd" /></p><p><strong>*** Добавлено: 15.03.2017 11:23:16 ***</strong></p><div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>В конвеере они выполняются последавательно, передавая STDOUT, на STDIN следующей програмы.</p></blockquote></div><p>А та глупость, которую вы имеете в виду, записывалась бы так:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />$ prog1 &gt;xxx ; prog2 &lt;xxx<br /></div></p><div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;вот довольно наглядно показано выполнение конвеера. И где же здесь параллельность?</div><div class="fancy_spoiler"></div></div></blockquote></div><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />[olej@dell 14]$ cat | tee x | tee y<br />...<br /></div><br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />[olej@dell own_LSD2_12]$ ps -A | tail -n30<br />...<br />10150 pts/2&nbsp; &nbsp; 00:00:00 cat<br />10151 pts/2&nbsp; &nbsp; 00:00:00 tee<br />10152 pts/2&nbsp; &nbsp; 00:00:00 tee<br />10189 pts/11&nbsp; &nbsp;00:00:00 ps<br />10190 pts/11&nbsp; &nbsp;00:00:00 tail<br />...<br /></div><br />Как легко видеть, это <strong>скопировано</strong> из выполняющихся терминалов ... а не пересказано от большого ума. <img src="https://linuxforum.ru/img/smilies/az.gif" alt="az" /></p>]]></content>
			<author>
				<name><![CDATA[Olej]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20875</uri>
			</author>
			<updated>2017-03-15T08:28:42Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453363#p453363</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453362#p453362" />
			<content type="html"><![CDATA[<p><strong>Olej</strong>,&nbsp; </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;вот довольно наглядно показано выполнение конвеера. И где же здесь параллельность?</div><div class="fancy_spoiler"><p><span class="postimg"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Process_output_chaining_via_pipes.ru.svg/584px-Process_output_chaining_via_pipes.ru.svg.png" alt="https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Process_output_chaining_via_pipes.ru.svg/584px-Process_output_chaining_via_pipes.ru.svg.png" /></span></p></div></div>]]></content>
			<author>
				<name><![CDATA[DiabloPC]]></name>
				<uri>https://linuxforum.ru/profile.php?id=35386</uri>
			</author>
			<updated>2017-03-15T08:18:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453362#p453362</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453361#p453361" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>Как они могут выполняться параллельно</p></blockquote></div><p>Вот так <img src="https://linuxforum.ru/img/smilies/bf.gif" alt="bf" /> <br /></p><div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>если каждая последующая команда ждет результатов работы первой?</p></blockquote></div><p>Никто никого не ждёт.</p>]]></content>
			<author>
				<name><![CDATA[Olej]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20875</uri>
			</author>
			<updated>2017-03-15T08:13:40Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453361#p453361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453360#p453360" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Olej пишет:</cite><blockquote><p>В конвейере программы выполняются параллельно.</p></blockquote></div><p>Как они могут выполняться параллельно если каждая последующая команда ждет результатов работы предыдущей?</p>]]></content>
			<author>
				<name><![CDATA[DiabloPC]]></name>
				<uri>https://linuxforum.ru/profile.php?id=35386</uri>
			</author>
			<updated>2017-03-15T08:12:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453360#p453360</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объединение команд и обработка выходных данных в shell]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=453359#p453359" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DiabloPC пишет:</cite><blockquote><p>В конвеере они выполняются последавательно,</p></blockquote></div><p>В конвейере программы выполняются <strong>параллельно</strong>.</p>]]></content>
			<author>
				<name><![CDATA[Olej]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20875</uri>
			</author>
			<updated>2017-03-15T08:11:04Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=453359#p453359</id>
		</entry>
</feed>
