Portál AbcLinuxu, 25. dubna 2024 16:55


Dotaz: Rozdíl mezi $[] a $(()) v bashi

11.3.2011 15:41 Ja
Rozdíl mezi $[] a $(()) v bashi
Přečteno: 255×
Odpovědět | Admin
Nějak se mi nedaří nikde najít, jaký je rozdíl mezi $[] a $(()) v bashi - mám pocit, že jsem, někde zahlédl že je $[] zastaralé, ale už to nemůžu dohledat. Navykl jsem si používat $[], tak jestli se mám přeučit...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.3.2011 16:43 Sten
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rozdíl je v tom, že $[] je naplánováno k odebrání z nějaké budoucí verze bashe.
11.3.2011 17:03 Ja
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Dík za informaci. Já to tušil - zrovna tu kratší a hezčí variantu.
11.3.2011 18:37 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Má smůlu, není POSIX :)

Více o některých dalších zastaralých konstrukcích: Obsolete and deprecated syntax
12.3.2011 21:44 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Z toho seznamu souhlasím snad jen s tím příkazem test...

Už se těším, až to jednou opravdu slavnostně po GNUovsku zruší a všichni si z toho sednem na prdel.
In Ada the typical infinite loop would normally be terminated by detonation.
12.3.2011 22:12 l4m4
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Já ani s tím test. Pouze
test -d foo
vypadá jako normální příkaz, všechny ostatní varianty vypadají jako Perl.

Naopak $(...) používám většinou namísto `...` kvůli čitelnosti a zanořování, ale `...` bych ani tak nerušil.
12.3.2011 22:24 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Pouze
test -d foo
vypadá jako normální příkaz, všechny ostatní varianty vypadají jako Perl.
Já bych spíše řekl, že test ... vypadá jako příkaz, a je to příkaz. Dále [[ ... ]] vypadá jako syntaktická konstrukce a je to syntaktická konstrukce. A pouze [ ... ] je takový podfuk mezi, protože vypadá jako konstrukce ale je to příkaz.

S odstraněním [ ... ] bych souhlasil, protože to je matoucí podfuk, na rozdíl od ostatních pseudo důvodů které jsou v té tabulce uvedeny, např. že je něco staré a nějaký posix se rozhodl že na to kašle. Až budu chtít posix shell tak si spustím posixsh, ale bash ať je pořád bash.
In Ada the typical infinite loop would normally be terminated by detonation.
12.3.2011 22:25 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Jo a kdyby to mělo vypadat jako perl tak byste psal jen if -d foo then bar
In Ada the typical infinite loop would normally be terminated by detonation.
12.3.2011 22:41 l4m4
Rozbalit Rozbalit vše Re: Rozdíl mezi $[] a $(()) v bashi
Víš jak to myslím -- příliš mnoho všelijakých závorek a symbolů.

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.