Proč nemusím Bach

23.2.2012

Před nějakou dobou jsem psal projekt ve kterém jsem používal programovací jazyk Perl. I když na něj existuje spousta vtipů, tento jazyk se mi celkem líbí. Obzvlášť práce s regulérními výrazy. Dostal jsem se ale do stádia, kdy jsem již nemohl pokračovat dále a práce s Perlem se mi stala obtížná, ne-li nemožná. Šlo o to, že jsem z Perlu potřeboval spouštět Basch-ové příkazy a nemohl jsem se vypořádat s kombinací uvozovek (`'“) a lomítek a jiných speciálních znaků. Byla zde ještě možnost doinstalovat knihovnu speciálně určenou pro tyto věci, ale chtěl jsem, aby to fungovalo pokud možno na všech strojích.

S Peťošovou pomocí (nikdy předtím jsem v Bash-i nic tak složitého nepsal) jsem celý projekt přepsal do Bash-e. Spousta věcí byla rázem snadná a průhledná. Ale spousta věcí byla pro men nepochopitelná, neprůhledná a složitá.

Největší problém jsem měl s tímto:

neexistuje komplexní manuál

Veškeré věci je nutno řešit pomocí man a když neznám správnou fci, tak Google.

nezjistil jsem, jak jednoduše pracovat s regulárními výrazy

V Perlu je to velice jednoduché a pohodlné. Tady je na to několik fcí a ani jedna mi nevyhovovala. Buď nedělala co jsem potřeboval, nebo to bylo přespříliš složité, abych se s tím zabýval. Nakonec jsem to vyřešil pomocí vnořeného Bash-e grepu a awk. Sice se mi to moc nelíbí, ale stále elegantnější, že regulár v Bash-i.

neumí pracovat s float čísly

Toto je největší kámen úrazu a byl jsem nucen tento nedostatek obcházet. Jinak bych zanesl velkou chybu a to bylo nepřípustné. Když už Bash nějakým způsobem ukecáte aby bral desetinná čísla, tak nedokáže pobrat desetinné číslo s čárkou
3,14 != 3.14
. Celkem srozumitelné, ale v dnešní době je desetinná čárka běžná věc a výstupy z některých lokalizovaných nástrojů vrací čárku.

nepochopitelně lpí na používání a nepoužívání mezer

ŠPATNĚ: promenna = 3 SPÁRVNĚ: promenna=3 V jiných případech zase mezery vyžaduje. Při psaní asi jedna z nejproklínanějších vlastností.

při práci s proměnnými je potřeba používat metráky složených závorek, zavináčů a podobně

A nejen proměnných. Cykly o podobné základní fce mají taky celkem obskurní zápis (a zase ty mezery). Při deklaraci proměnné se zapisuje jen název, když s ní ale následně pracuji, tak musím použít $, nebo dokonce ${}. Chcete vědět mocnost pole? Není nic jednoduššího, než vypsat všechny speciální znaky co máte na klávesnici:array_size=${#array[@]}



nevyplnovat
Jméno:
Friday Im In Love

i don't care if monday's blue tuesday's grey and wednesday too thursday i don't care about you it's friday i'm in love monday you can fall apart tuesday wednesday break my heart thursday doesn't even start it's friday i'm in love saturday wait and sunday always comes too late but friday never hesitate... i don't care if monday's black tuesday wednesday heart attack thursday never looking back it's friday i'm in love monday you can hold your head tuesday wednesday stay in bed or thursday watch the walls instead it's friday i'm in love saturday wait and sunday always comes too late but friday never hesitate... dressed up to the eyes it's a wonderful surprise to see your shoes and your spirits rise throwing out your frown and just smiling at the sound and as sleek as a shriek spinning round and round always take a big bite it's such a gorgeous sight to see you in the middle of the night you can never get enough enough of this stuff it's friday i'm in love
internethotline.cz