<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: переменные в while и вне его</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8988.html</link>
    <description>Граждане, сломал моск, хоть тема и баян...&lt;br&gt;В общем, суть в файлике такого вида:&lt;br&gt;&lt;br&gt;$ head codes&lt;br&gt;200&lt;br&gt;200&lt;br&gt;304&lt;br&gt;302&lt;br&gt;200&lt;br&gt;500&lt;br&gt;200&lt;br&gt;301&lt;br&gt;404&lt;br&gt;200&lt;br&gt;&lt;br&gt;Строк в нем много.&lt;br&gt;&lt;br&gt;Я хочу получить в переменную строку вида:&lt;br&gt;&quot;100899 200&quot;, &quot;9 301&quot;, &quot;46908 302&quot;, &quot;14378 304&quot;, &quot;493 404&quot;, &quot;11 500&quot;&lt;br&gt;А еще лучше получить сразу массивом codes, где, к примеру, codes&#091;0&#093;=&quot;100899 200&quot;&lt;br&gt;&lt;br&gt;Дошел до такого:&lt;br&gt;$ cat sorter.sh&lt;br&gt;#!/usr/local/bin/bash&lt;br&gt;sort codes &amp;#124; uniq -c &amp;#124; while read -r i; do&lt;br&gt;    f=&quot;&#096;&lt;br&gt;        if &#091; -n &quot;$f&quot; &#093;; then&lt;br&gt;            echo &quot;&#092;$f, &quot;&lt;br&gt;        fi&lt;br&gt;    &#096;&#092;&quot;$i&#092;&quot;&quot;&lt;br&gt;    echo &quot;$f&quot;&lt;br&gt;done&lt;br&gt;$ ./sorter.sh&lt;br&gt;&quot;100899 200&quot;&lt;br&gt;&quot;100899 200&quot;, &quot;9 301&quot;&lt;br&gt;&quot;100899 200&quot;, &quot;9 301&quot;, &quot;46908 302&quot;&lt;br&gt;&quot;100899 200&quot;, &quot;9 301&quot;, &quot;46908 302&quot;, &quot;14378 304&quot;&lt;br&gt;&quot;100899 200&quot;, &quot;9 301&quot;, &quot;46908 302&quot;, &quot;14378 304&quot;, &quot;493 404&quot;&lt;br&gt;&quot;100899 200&quot;, &quot;9 301&quot;, &quot;46908 302&quot;, &quot;14378 304&quot;, &quot;493 404&quot;, &quot;11 500&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;Но никакие шаманства не помогли получить содержимое $f из последней итерации while после done.&lt;br&gt;&lt;br&gt;Помогите советом, плз. (:&lt;br&gt;</description>

<item>
    <title>переменные в while и вне его (Andrey)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8988.html#1</link>
    <pubDate>Tue, 11 Jan 2011 03:43:25 GMT</pubDate>
    <description>переменная f не доступна потому что тут вызывается несколько вложеных процессов.&lt;br&gt;когда команда вызываетс через &amp;#124; то стартует новый процесс и f определена в самом последнем.&lt;br&gt;когда цикл закончился то переменая ушал вместе с процесом.&lt;br&gt;Можно внутри цикла посылать f в файл и потом сделать tail -n1 па этот файл.&lt;br&gt;&lt;br&gt;ещё можно сделать в одну строку:&lt;br&gt;$ sort codes &amp;#124; uniq -c &amp;#124; xargs &amp;#124; sed &apos;s/&#092;(&#091;^ &#093;&#092;+&#092;) &#092;+&#092;(&#091;^ &#093;&#092;+&#092;)/&quot;&#092;1 &#092;2&quot;,/g&apos; &amp;#124; sed &quot;s/,$//&quot;&lt;br&gt;</description>
</item>

</channel>
</rss>
