abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 23:33 | Nová verze

Opera 56, verze 56.0.3051.31, byla prohlášena za stabilní. Z novinek vývojáři upozorňují například na vylepšenou funkci vyskakovacích videí - v plovoucím rámci lze nově nastavovat hlasitost. Podrobný přehled změn v Changelogu. Přehled novinek pro vývojáře na blogu Dev.Opera. Opera 56 je postavena na Chromiu 69.

Ladislav Hagara | Komentářů: 1
včera 21:55 | Nová verze

Společnost Oracle oficiálně oznámila vydání Java SE 11 (JDK 11). Jedná se o verzi s prodlouženou podporou (LTS). Nových vlastností (JEP - JDK Enhancement Proposal) je 17. Nové verze Java SE vychází každých 6 měsíců.

Ladislav Hagara | Komentářů: 0
včera 18:44 | Nová verze

Byla vydána (en) betaverze Fedory 29. Jedná se o poslední zastávku před finálním vydáním a vzhledem k tomu, že byla zrušena alfa, tak také o první. K dispozici je v oficiálních edicích Workstation, Server a Atomic a také v podobě spinů, labů a verze pro ARM. Vydání Fedory 29 je plánováno na 30. října.

Ladislav Hagara | Komentářů: 0
včera 11:44 | Komunita

Aktuální verzi knihy Everything curl věnované řádkovému nástroji a knihovně pro přenos dat po různých protokolech curl lze koupit v papírové formě. Kniha je volně k dispozici na stránkách curlu nebo ke stažení ve formátech PDF, MOBI a EPUB. Ve spolupráci s BountyGraph byl spuštěn bug bounty program aneb za nalezení kritické bezpečnostní chyby v curlu lze vydělat aktuálně až 33 268 dolarů. Částkou 32 768 dolarů přispěl Dropbox. Curl již umí TLS

… více »
Ladislav Hagara | Komentářů: 0
včera 11:33 | Zajímavý projekt

Cloudflare spustil experimentální provoz ESNI - šifrovaného SNI (Server Name Indication), které umožňuje chránit soukromí uživatelů přistupujících k webům přes HTTPS. ESNI je podporováno zatím v testovací verzi Firefoxu. Při současném použití šifrovaného DNS (DNS-over-TLS či DNS-over-HTTPS) tak ISP či státy již nebudou mít žádnou přesnou možnost, jak kontrolovat či blokovat stránky, ke kterým uživatelé přistupují. Více viz také IETF draft.

xm | Komentářů: 0
24.9. 21:33 | Nová verze

Byla vydána nová major verze 1.8.0 open source systému pro filtrování nevyžádané pošty Rspamd (GitHub, ChangeLog). Z novinek lze zmínit nový framework selectors, optimalizaci modulu ClickHouse nebo vylepšení webového rozhraní.

Ladislav Hagara | Komentářů: 2
24.9. 18:44 | Bezpečnostní upozornění

Sabri Haddouche vytvořil stránku Browser Reaper, na které demonstruje zranitelnosti současných verzí webových prohlížečů Chrome, Safari i Firefox. Zveřejněné skripty dokážou zahltit nejen webové prohlížeče, ale v závislosti na nastavení, také celé operační systémy.

Ladislav Hagara | Komentářů: 12
23.9. 19:22 | Nová verze

Byla vydána verze 11.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností i s náhledy v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
22.9. 13:00 | Komunita

Do 30. října se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 4. prosince 2018 do 4. března 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 115
21.9. 22:22 | Komunita

Společnost Purism představila kryptografický token Librem Key. Koupit jej lze za 59 dolarů. Token byl vyvinut ve spolupráci se společností Nitrokey a poskytuje jak OpenPGP čipovou kartu, tak zabezpečení bootování notebooků Librem a také dalších notebooků s open source firmwarem Heads.

Ladislav Hagara | Komentářů: 9
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (14%)
 (14%)
 (20%)
 (24%)
 (24%)
 (4%)
 (0%)
Celkem 414 hlasů
 Komentářů: 35, poslední včera 09:16
Rozcestník

Dotaz: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu

David Watzke avatar 28.12.2005 00:51 David Watzke | skóre: 74 | blog: Blog... | Praha
Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Přečteno: 183×

Ahoj. Doufám, že jsem napsal výstižně titulek. :) Hodím jsem jen nejpodstatnější info ohledně skriptu, kterej píšu a na závěr řeknu problém.

FIX=`echo hal \ # jmeno-baliku je $1, ale to jen aby bylo jasno, dal jsem příklad balík hal
| sed -e 's/=//g' \
      -e 's/\[[[digit:]].*\]//' \
      -e 's/-[[:digit:]].*$//'`

CP=`emerge -p --nodeps $FIX \
| grep 'ebuild ' \
| tail -n 2 \
| head -n 1 \
| sed -e 's/\[ebuild.......\]\ //' \
      -e 's/ //g'`

CPN=`echo $CP \
| sed -e 's/\[[[digit:]].*\]//' \
      -e 's/-[[:digit:]].*$//'`

PN=`echo $CPN | cut -d/ -f2`
GP="http://gentoo-portage.com"
wget -qc $GP/$CPN
HTTP="$GP`sed -n 's/.*href="\([^"]\+\).*/\1/gp' $PN | grep ebuild | head -n 1`"
P=`echo $HTTP | sed 's/%2F/\//g' | cut -d/ -f6`
EBUILD="/usr/portage/$CPN/$P"
rm -f $PN 2> /dev/null

if [ "`grep epatch echoBUILD`" != "" ]
 then
# a taky přichází problém
  for F in `grep epatch echoBUILD | sed -n 's/.*"\([^"]\+\).*/\1/gp' | sed 's/${FILESDIR}//g'`
  do
   PATCH="/usr/portage/$CPN/files${F}"
   echo $PATCH
   # další, zatím nepodstatný příkazy
  done
fi
Díky tomu to na mě vysype
/usr/portage/sys-apps/hal/files/${P}-RBC.patch
/usr/portage/sys-apps/hal/files/${PN}-0.5.1-old_storage_policy.patch
Jenže já tam ty proměnný uvedený mám a on je nevymění! Až když debuguju po jednom řádku v terminálu, tak zjistím, že když pak ještě řeknu:
echo /usr/portage/sys-apps/hal/files/${P}-RBC.patch
echo /usr/portage/sys-apps/hal/files/${PN}-0.5.1-old_storage_policy.patch
tak to vymění správně, ale jakmile to zapíšu do skriptu, zase to samý. :-( Achjo. Nevíte co s tím?

PS: Pokud vás zajímá, co je zač ten skript, vydržte, protože když s ním nebudou další problémy budu o něm informovat v blogu.

“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

Odpovědi

28.12.2005 01:46 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Nebyla by ukázka, jak vlastně vypadá ten soubor echoBUILD? Ne každý zná Gentoo tak detailně, aby si to dokázal z hlavy představit.

Jinak místo

  if [ "`grep epatch echoBUILD`" != "" ]; then
je jednodušší (a efektivnější)
  if grep -q epatch echoBUILD; then
David Watzke avatar 28.12.2005 01:48 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Já jsem... to zrovna chtěl napsat. Než jsem to poslal, nahrazoval jsem trochu. Má to být $EBUILD. :-( Takže to je ebuild.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 28.12.2005 01:50 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Ten si mimochodem můžeš nechat zobrazit na gentoo-portage.com. Namátkou třeba takovej...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
28.12.2005 02:25 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
No tak to je celkem jasné. Výsledkem expanze proměnné F je sice něco, co sice obsahuje znaky '$', ale ty už se samozřejmě znovu neexpandují, jinak byste mohl shell triviálně poslat do nekonečné smyčky a nebylo by možné jako výsledek expanze dostat nic, co obsahuje '$'. Napadají mne tři možnosti:
  1. použít eval
  2. výsledek toho sedu doplnit o přiřazení a includovat
  3. nechat si ty proměnné nahradit rovnou tím sedem
Pokud jsou tam vždy jen P a PN, přikláněl bych se ke třetí variantě. První dvě jsou tak trochu "o hubu".
David Watzke avatar 28.12.2005 02:39 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Jsou ty vždy jen P a PN. Jenže je tu problém. Jak to nahradím sedem, když $P a $PN jsou zase jen proměnný? :(
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
28.12.2005 03:16 Dunric | skóre: 21
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Např. takto ?
... | sed "s/\${P}/${P}/g"
In the garden sleeps a messenger ·
David Watzke avatar 28.12.2005 03:30 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Funguje, dík.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 28.12.2005 01:52 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash: Nahrazení $P obsahem proměnný uvnitř for cyklu
Možná bude vhodnější, když vám ukážu celý soubor. Tady je.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.