Portál AbcLinuxu, 25. dubna 2024 20:56


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
9.7.2010 00:44 Pavel
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Odpovědět | Sbalit | Link | Blokovat | Admin
Me oblibene...
 cat neco | while read line; ...
9.7.2010 02:05 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Ta varianta uvedená v článku má vůči této jisté objektivní výhody.
9.7.2010 09:13 vlk
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Radsej takto :
    <neco while read line; ...
9.7.2010 10:18 Pavel
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Dost casto potrebuju mezi tim catem a while neco grepovat, takze zobak je hezky, ale malo platny...
9.7.2010 12:30 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Oboji ma svoje. Ta roura Ti zase z toho while nepusti ven promenne... alespon ne naprimo.
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
9.7.2010 12:51 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
V Bashi lze i <(grep foo soubor.txt) což spojuje oboje výhody do jednoho. Ale to jen doplňuji, nic proti cat sem | tam.
10.7.2010 04:10 zulu
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
A to takhle nemůžeš?
10.7.2010 04:12 zulu
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Beru zpět, špatně jsem si to vyložil.
10.7.2010 04:07 zulu
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
A to funguje kde?
10.7.2010 23:41 plk
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
co kde kdy jak proc?
11.7.2010 04:55 zulu
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
<neco while
11.7.2010 14:26 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Předpokládám že v sh, bash, zsh, csh, tcsh, máte nějaké podezření že to někde nefunguje?
11.7.2010 20:01 Jirka P
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Takhle to nefunguje nikde, ono totiž aby shell poznal (podle gramatiky) cyklus, musí být to rezervované slovo první. Nefunguje to minimálně v bashi a v dashi (co jsem teď vyzkoušel).

Podle posixové gramatiky navíc

<neco while x

znamená spuštění příkazu "while" (existuje-li někde na disku) s parametrem x a vstupem přesměrovaným z neco.
11.7.2010 20:56 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
No jak jsem říkal, ta varianta popisovaná v článku má své výhody. Máte pravdu, nevím kam na tohle vlk šel, možná v tom zsh. Osobně používám to co je v článku.
9.7.2010 02:03 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Odpovědět | Sbalit | Link | Blokovat | Admin
read má jediný přepínač, a sice -r

Běžné jsou i ready (asi ne POSIX?) co mají ještě -p.
read -p "Jak se jmenuješ? " NAME
13.7.2010 17:41 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
(bash)
In Ada the typical infinite loop would normally be terminated by detonation.
13.7.2010 20:24 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Dobré :)
13.7.2010 17:43 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Odpovědět | Sbalit | Link | Blokovat | Admin
K basename a dirname bych dodal ještě užitečný příkaz readlink.
In Ada the typical infinite loop would normally be terminated by detonation.
LennyCZ avatar 22.7.2010 00:06 LennyCZ | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Odpovědět | Sbalit | Link | Blokovat | Admin
Jak je prosím možné toto (jde o bash)?
lennycz@hugo:~$ IFS=x
lennycz@hugo:~$ read a b
aaaxbbbxcccxddd
lennycz@hugo:~$ echo $a
aaa
lennycz@hugo:~$ echo $b
bbb ccc ddd
lennycz@hugo:~$ 
Čekal bych jedno z tohoto:
  1. $a bude aaa a $b bude bbb, zbytek se zahodí
  2. $a bude aaa a $b bude pole složené z bbb, ccc a ddd, pak by se ale výpis měl objevit jako bbbxcccxddd, protože $IFS je nastaveno na x
Pletu se? (To je řečnická otázka, evidentně ano :-D)

Jinak samozřejmě díky za skvělý seriál :D...
Given a choice between dancing pigs and security, users pick dancing pigs every time. (Dancing pigs problem)
22.7.2010 07:30 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Bash má vestavěný příkaz help. Prostudujte si výstup příkazu help read. Píše se tam, že do poslední proměnné se uloží zbytek řetězce.
LennyCZ avatar 22.7.2010 16:09 LennyCZ | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: Unixové nástroje – 15 (basename/dirname, test, read)
Díky za vysvětlení, o příkazu help jsem nevěděl.
Given a choice between dancing pigs and security, users pick dancing pigs every time. (Dancing pigs problem)

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.