Portál AbcLinuxu, 9. května 2025 17:47

Bash 4.0

Vyšel Bash 4.0. Opravuje zbývající vážné chyby 3. řady a přináší asociativní pole, vylepšení parseru a různé další novinky.

24.2.2009 06:23 | David Watzke | Nová verze


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

Komentáře

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

Vložit další komentář

24.2.2009 09:12 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0
Odpovědět | Sbalit | Link | Blokovat | Admin

Sekce BUGS v bash(1) začíná větou

It's too big and too slow.

Jsem zvědav, jestli verze 4 opravuje i tuto chybu. Ale podle popisu asi spíš ne…

Salutis avatar 24.2.2009 09:18 Salutis | skóre: 7 | blog: Salutis
Rozbalit Rozbalit vše Re: Bash 4.0
Odpovědět | Sbalit | Link | Blokovat | Admin
There is a new &>> redirection operator, which appends the standard output and standard error to the named file.
Trikrát hurá! :)
Najväčší dar je vedieť posúdiť hodnotu vecí.
Amarok avatar 24.2.2009 10:51 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: Bash 4.0
To se musim pridat. Ja v dokumentaci porad hledal tenhle zapis a mel jsem pocit, ze ho nekdo zapomnel napsat do dokumentace, ale on to bash fakt neumel :-/
GNUniverse - May the source be with you...
Zdenek.Z avatar 24.2.2009 12:56 Zdenek.Z | skóre: 14
Rozbalit Rozbalit vše Re: Bash 4.0
Jo a taky obdobné |&. A ** na rekurzivní matchování v podadresářích mi občas chyběla jako glob pattern.
24.2.2009 13:28 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bash 4.0
Zjednodusuje to zivot, ale dalo sa to nahradit dlhsim zapisom uz dnes. Ale ten pattern ** to je uz lepsie. Nemusi sa tahat do toho externy find. A tie asoc. polia sa tiez hodia. Programovat si ich po svojom bolo nepohodlne.
If you hold a Unix shell up to your ear, you can you hear the C.
24.2.2009 13:56 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0
To ** mi naopak připadá jako hodně nešťastný nápad, protože to přináší nekompatibilitu se staršími verzemi a může to rozbít existující skripty.
24.2.2009 16:53 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bash 4.0
To sice hej, ale to plati o lubovolnom pokroku, ak sa zacne pozivat. Porovnavaci operator =~ vo verzii 2 nebol, v 3 je. Nemam ho preto pouzivat?
If you hold a Unix shell up to your ear, you can you hear the C.
24.2.2009 17:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0
Pokud se nepletu, když jste ho zkusil použít ve verzi 2, dostal jste chybu. Tohle je ale úplně jiný případ: zcela korektní maska funguje ve verzi 3 i 4, ale v každé znamená něco jiného. Takže to může znefunkčnit existující skripty.
24.2.2009 19:14 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bash 4.0
Chapem spravne, ze je v 3 je to ekvivalent * ? Korektna je, ale asi dost nezvycajna.
If you hold a Unix shell up to your ear, you can you hear the C.
24.2.2009 19:36 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0

Ano, '**' je ekvivalentní '*'. Je to samozřejmě nezvyklý zápis, ale ty masky mohou často vznikat všelijak, například je může generovat sám skript nebo jiný program. A pak tam taková věc může snadno vzniknout.

Je to bezesporu užitečná funkce, ale IMHO nestojí za porušení zpětné kompatibility a potenciální znefunkčnění existujících skriptů. Přitom by stačilo, aby se musela zapnout něčím na způsob nullglob nebo extglob.

24.2.2009 19:38 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0
Tak všechno zpátky. Naštěstí zdravý rozum zvítězil: speciální expanze '**' je defaultně vypnutá a musí se explicitně povolit pomocí shopt globstar.
24.2.2009 19:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0
Odpovědět | Sbalit | Link | Blokovat | Admin

Začínám mít pocit, že se někdo zbláznil…

There is a new shell option: `dirspell'. When enabled, the filename completion code performs spelling correction on directory names during completion.

O bashi se asi brzy začnou říkat podobné hlášky jako kdysi o emacsu.

David Watzke avatar 24.2.2009 20:59 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash 4.0
Kdysi? :-D

Jinak jo, tohle je docela síla...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
24.2.2009 21:29 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Bash 4.0

Naštěstí je to jen doplňování a ne globbing.

Mě včera zarazila nápověda k install z coreutils-7.1:

This install program copies files (often just compiled) into destination
locations you choose.  If you want to download and install a ready-to-use
package on a GNU/Linux system, you should instead be using a package manager
like yum(1) or apt-get(1).

Mám dojem, že Shuttelworth útočí!

thingie avatar 24.2.2009 21:58 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Bash 4.0

Já jsem třeba docela šťastný s readlinovým completion-ignore-case, možná by nebylo až tak zlé, kdyby to uměl i bash. Tedy, samozřejmě nějak nenásilně. Oprava chyb se hodí taky, při rozumné implementaci.

Růžové lži.
24.2.2009 22:08 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bash 4.0
"set completion-ignore-case on" v ~/.inputrc mam uz nejaky ten piatok. A normalne v bashi mi dplna bez toho, aby som sa staral o velkost pismen. Alebo mas na mysli nieco ine?
If you hold a Unix shell up to your ear, you can you hear the C.
thingie avatar 24.2.2009 22:22 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Bash 4.0

No, to jistě, ale to taky není dokonalé.

Modelový příklad, mějme adresář XMonad a soubor xmonad.cabal v jednom adresáři (ze života, jak vidno, dokonce), napišme cd a xmo, stiskněme tab. Vzhledem k existenci xmonad.cabal se nám tam doplní xmonad, jenže když teď stiskneme enter, tak se dostaneme leda… nikam. A doplňování už mi teď nedokáže nijak pomoct. Intuitivně bych to mohl zachránit dopsáním /, jenže to nepomůže, a tab doplňování už to nezvětší. Já musím na to velké X pamatovat už na začátku (nebo nejpozději u M). Případně si zřejmě zapnout cyklení nad nejednoznačným doplňováním, ale to taky nechci.

Růžové lži.
24.2.2009 23:46 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Bash 4.0
Tak ono od shopt -s cdspell k dirspell nebylo tak daleko, žejo :) Prostě se akorát prování průběžně během doplňování, což je intelitentnější verze opravy ex post (po odentrování).
25.2.2009 00:22 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash 4.0
Aha, tak tohle přeci jen dává nějaký smysl. Podle toho popisu to znělo, jako by to na jména adresářů aplikoval spellchecker, to mne docela vyděsilo. Ale stejně… zkusil jsem si ten bash 4.0 cvičně přeložit a pouhých 8 KB chybí do 1 MB; nejsem tak úplně přesvědčen o správnosti této cesty…
Amarok avatar 25.2.2009 08:30 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: Bash 4.0
Me ten spellcheck neprijde tak spatny, bude to asi mysleno tak, kdyz se preklepnu pri psani delsiho nazvu (prehodim 2 pismena apod.), tak to bash opravi. Jestli se nemylim, tak tohle uz i nejaky jiny shell umi delsi dobu. Pak existuje stejne moznost prejit na dash, mozna uz to bude brzo i v dostacujicim stavu (co se tyce moznosti).
GNUniverse - May the source be with you...

Založit nové vláknoNahoru


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