🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72594

Re: bash while done zmienna problem

#72594
From: Michoo
Date: Tue, 12 Feb 2013 10:22
43 lines
2219 bytes
On 12.02.2013 04:52, PawelS wrote:
> Kamil Jońca pisze:
>> Tomasz Kobus <Ra.spam-niet@t.k.pl> writes:
>>> #!/bin/sh
>>> zmienna=0
>>> cat plik| while read line
>>> do
>>> echo $line
>>> zmienna=3
>>> done
>>> echo $zmienna
>>>
>>> i niestety na wyjściu (pomijając linie pliku) mam wynik "0" a
>>> chciałbym mieć "3"
>>
>> Czy przepisałeś czy zacytowałeś ten skrypt? Bo obstawiam literówkę w
>> nazwie zmiennej w ciele pętli.
>
> A ja obstawiam, że nie wiesz jak działa sh/bash,
> sam jestem zaskoczony, że tak to działa,
> ale przepisz powyższy skrypt dodając sleep 1
> po zmienna=3 a przed done i wyświetl sobie listę procesów,
> to zobaczysz bash, bash i sleep.

> To dlatego ta zmienna jest ustawiona w pętli
> i poza pętlą w bashu w dalszym ciągu jest 0.

Nie dlatego, że ustawiona w pętli a dlatego, że pętla jest w nowym 
procesie odpalonym przez "|". W tym wypadku usunięcie martwego kota na 
rzecz "<" pomoże.

W ogólnym czasami trzeba użyć named pipe na zasadzie:
cat plik > rurka &

petla < rurka

> Niestety export zmiennej do środowiska też nie pomaga.

Nie jest to dziwne.

-- 
Pozdrawiam
Michoo
Technical Details
Message-ID: <kfd5kk$fi6$1@mx1.internetia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
References: <klc9h8h8f5bnn1c0jkdtj5nv6u63aeshlh@4ax.com> <87ip63p3ak.fsf@alfa.kjonca> <kfce90$vkm$1@news.icm.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: Michoo <michoo_news@vp.pl>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: bash while done zmienna problem
Date: Tue, 12 Feb 2013 11:22:55 +0100
Organization: Netia S.A.
Lines: 43
Message-ID: <kfd5kk$fi6$1@mx1.internetia.pl>
References: <klc9h8h8f5bnn1c0jkdtj5nv6u63aeshlh@4ax.com> <87ip63p3ak.fsf@alfa.kjonca> <kfce90$vkm$1@news.icm.edu.pl>
NNTP-Posting-Host: 83.238.197.12
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1360665044 15942 83.238.197.12 (12 Feb 2013 10:30:44 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Tue, 12 Feb 2013 10:30:44 +0000 (UTC)
In-Reply-To: <kfce90$vkm$1@news.icm.edu.pl>
X-Tech-Contact: usenet@internetia.pl
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.11) Gecko/20121123 Icedove/10.0.11
X-Server-Info: http://www.internetia.pl/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit