🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.os.linux.newbie
Article #138264

Re: Konwerter Win-ISO

#138264
From: Tomasz Minkiewicz
Date: Wed, 03 Jun 2009 10:37
44 lines
3098 bytes
On Tue, 02 Jun 2009 18:36:57 +0200
MaGorEc <mtgorec#tnij#@interia.pl> wrote:

> Tomasz Minkiewicz pisze:
> 
> > for p in *txt; do iconv -f windows-1250 -t utf-8 "$p" > "${p/%txt/utf}"; done
> 
> A czy mógłbyś trochę wyjaśnić składnię tego polecenia?
> Czytałem manuala i trochę internetowych kursów bash-a i nie mogę się
> przebić przez kilka spraw
> 
> 1. Dlaczego rozpoczynasz pętlę poleceniem p? Czy to jest liczenie
> wszystkich plików z rozszerzeniem txt?

Rozpoczynam poleceniem „for”. A to polecenie (w tej formie, bo jest
jeszcze inna) oznacza: każdy plik pasujący do maski (tu: *txt) przypisz
po kolei do zmiennej „p” i za każdym razem wykonaj polecenie dane po
„do”.
A za „do” mamy napisane, żeby wywołać iconva, podając mu jako ostatni
parametr to, co przechowuje aktualnie zmienna „p” (czyli nazwę pliku),
zaś output iconva przekierować do pliku o innej nazwie, wygenerowanej
na podstawie nazwy przechowywanej w zmiennej „p”.

> 2. Dlaczego to samo p pojawia się jako zmienna (w cudzysłowie) w miejscu
> gdzie powinien być plik do konwertowania?

No bo to właśnie jest plik do konwertowania. Tylko jego nazwa nie jest
dana bezpośrednio, a przez zmienną środowiskową.
Cudzysłów (podwójny!) jest po to, żeby nie mieć problemów np. ze
spacjami w nazwach plików. Można i bez niego, jeśli się wie, że jest
akurat niepotrzebny, ale używa się go rutynowo.

A dlaczego za „for” jest „p”, natomiast w wywołaniu iconva – „$p”?
Bo nazwa zmiennej bez dolara reprezentuje tę zmienną (tzn. w zasadzie
nazwa zmiennej reprezentuje nazwę zmiennej, bo niby co taka zmienna ma,
prócz nazwy i wartości? ale takie ujęcie ździebko mało wnosi),
natomiast z dolarem – jej wartość.


Aha. I przeczytaj przynajmniej odnośne rozdziały z:
http://tldp.org/LDP/Bash-Beginners-Guide/html/ .

-- 
Tomasz Minkiewicz <tommink@gmail.com>
Technical Details
Message-ID: <20090603123715.19f8d737@sultan>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.man.lodz.pl!not-for-mail
References: <gsl713$12j$1@news.onet.pl> <49EE2E18.20002@example.com> <gslb4h$83q$1@news.onet.pl> <gvoe45$btu$1@atlantis.news.neostrada.pl> <20090529130502.248e0fe8@sultan> <h03l13$iil$1@nemesis.news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.man.lodz.pl!not-for-mail
From: Tomasz Minkiewicz <tommink@gmail.com>
Newsgroups: alt.pl.comp.os.linux.newbie
Subject: Re: Konwerter Win-ISO
Date: Wed, 3 Jun 2009 12:37:15 +0200
Organization: LODMAN Usenet Server
Lines: 44
Message-ID: <20090603123715.19f8d737@sultan>
References: <gsl713$12j$1@news.onet.pl> <49EE2E18.20002@example.com> <gslb4h$83q$1@news.onet.pl> <gvoe45$btu$1@atlantis.news.neostrada.pl> <20090529130502.248e0fe8@sultan> <h03l13$iil$1@nemesis.news.neostrada.pl>
NNTP-Posting-Host: 212.191.74.105
Mime-Version: 1.0
X-Trace: newsfeed1.man.lodz.pl 1244025438 7400 212.191.74.105 (3 Jun 2009 10:37:18 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Wed, 3 Jun 2009 10:37:18 +0000 (UTC)
X-Newsreader: Claws Mail 3.7.1 (GTK+ 2.16.1; i486-pc-linux-gnu)
X-Face: .[F9/EA'3Zn~G-.xp)[~Mv:Lgw*41%16^o2r_Yk9Do!+mtGH"Q4IaN$ZOhX`+^jO?3tQJ.cZV`+hv$CWG~]_-X5N,u;zTQyDJz_H:d,)cb9z4?mk#N;!GCF_7;ha:%{#G^@=6>[iK0b+4{?[(v-b/9rUk:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit