Protoze prevazna vetsina shellovych skriptu jsou napsana proto, aby je autor poustel na svem systemu a portabilita tedy neni pozadovana. Nehlede na to, ze by se pak uzivatel musel zbytecne omezovat na moznosti POSIXoveho shellu.
Nevidim duvod, proc nepsat bash, je k dispozici pro vsechny POSIXove systemy, pro jine neni ani bash ani sh, takze v tom rozdil neni. V kazdem pripade nejhorsi psát sh-nekompatibilní skripty a v hlavicce uvadet /bin/sh ...
Pri psani scriptu na vlastni pocitac je to mozna jedno, ale v kazdem pripade jak pouziti /bin/bash tak pouziti /bin/sh s sh-nekompatibilnim scriptem je spatne. /bin/bash totiz funguje POUZE na linuxu. Solaris nebo *BSD maji bash v /usr/local/bin/bash (a navic neni jistota jestli ho vubec maji). To mozna i ten sh nekomaptibilni script je lepsi...
Naproti tomu /usr/bin/env je pod *BSD, Solaris i Linuxem dostupny stejne.
Solaris - od solarisu 9 (resp dokonce od pozdejsich releasu Solarisu 8) je bash defaultne v /usr/bin. V tom problem neni.
Zachranne skripty - /bin/sh a striktni Bourne-shell syntaxe. Musi chodit i v single-user. Ale tam to je vzdycky pro jedinou platformu.
Portabilni skripty - /usr/bin/ksh. Na komercnich unixech je vsude, Linux/BSD neni problem dodat (a bash to taky zvladne, btw). Problemy nebyvaji ani tak se skriptem, jako spis s radikalne odlisnymi vysledky systemovych utilit. ps, df, ls, grep, awk... Ze vam to chodi na linuxu nic neznamena, na HP-UXu to selze uplne, na Solarisu zcasti, na AIXU to udela neskutecne veci, na dalsi platforme to neco dela ale nevite, co... Takze slusny shell skriptar se stejne nevyhne zjistovani platformy a nastavovani prostredi na posixove nebo aspon na co nejmene od nej odchylne (hledejte svr4 nebo xpg4 adresare, nawk apod).
Ja zase nevidim duvod psat bash, dokud skript nepouziva vymoznosti bash. Pokud je skript komatibilni se sh, preferuji /bin/sh. Kazdy sveho stesti strujcem... ;-)
Dalsi sposob spustenia scriptu bez prav pre spustanie je cez bodku:
. my-script-name
Ma to ale zopar obmedzeni, napr. ze sa to spusti v kontexte aktualneho shellu a nulty parameter ($0) bude nazov shellu (-bash, -csh, ...)
Autor clanku je social-amater, kdo ma skutecne zajem o bash scripting, necht vyhleda "bash scripting" pomoci google.com, tento clanek je bezcemmy plebs psany amaterem.
Mas nejake rozumne oduvodneni proc psat neco, co jiz bylo napsano tisicemi lidmi pred nami a dokonce lepe?
btw. opravdu kvalitni technicke clanky se pisi vyhradne v anglictine, CJ je dobry leda na to, kdyz prijedete do Horni Dolni a budete si chtit porucit pivo u tech sedlaku, ale jak nekdo chce programovat, musi zacit premyslet mezinarodne...
stejne zadny pouzitelny programovaci jazyk, kde by se prikazy psaly cesky nikdy uz ze sve podstaty existovat nemuze, tak spatna cestina je.
My se tady nebavime o programovacim ci skriptovacim jazyku v "cestine" samozrejme ze je to nelogicke. Ale to co ste napsal vy jako vasi reagci se me nelibi a dovoluji si vas nazor komentovat slovy "ubohy a velmi jednoduchy".
Čeština je skvělý jazyk. Ale soudit ho podle programovacích jazyků může leda social-amater, česky řečeno blbec. Nicméně - vyměnit klíčová slova za libovolná jiná přece není žádný problém. Pár takových úchylných pokusů tu už bylo. Třeba Microsoft v nějaké verzi Visual Basicu v Excelu přeložil vše - normálně se psalo KDYŽ, SOUČIN, PRŮMĚR, ODMOCNINA atd.. V Karlovi to bylo aspoň bez diakritiky.
Taky Placal byl jednu dobu cesky, ale to uz bohudik odval cas :-) Cesky dodnes mluvi nektera Loga a nejaky silenec by urcite napsal modul do Perlu. Kdyz maji nadherne vymyslenou latinu, tak proc ne cestinu, ze?
Pro same ryby vam z obzoru unika more. Nebo snad myslite, ze se vse co souvisi s programovanim vcetne programovani samotneho pise v anglictine jen tak?
Clovek s budoucnosti:
1) uceni anglictiny
2) uceni nazvu, principu a metod
3) programovani
4) cteni/uceni originalnich anglickych specifikaci, dokumentaci, standardu
5) odreagovani typu root.cz, kam se chodi zasmat tem bez budoucnosti
Clovek bez budoucnosti:
1) je skolou donucen naucit se alespon trochu anglicky (na ctyrku) a tvrdi, ze to stejne nepotrebuje
2) muze byt dalsi skolou donucen naucit se zaklady algoritmizace (napr. Pascal) a tvrdi to co vyse
3) sam se nauci stahovat, instalovat, deinstalovat Windows a hry (a tvrdi ze se "v pocitacich vyzna"
4) navstevuje portaly pro lidi typu social-amater (vrana k vrane seda) a tam cte, komentuje, bastli
5) mysli si ze je the best a tak ma prece pravo hanit vse neceske, standardizovane (on tvrdi, ze standardy nepotrebuje), skolou jiz donucen k nicemu neni - jiz ji absolvoval a nyni cely jeho zivot bude rutina plna invalidniho, zbastleneho kodu, ktery se nezlepsi (on to stejne nepotrebuje, kdyz mu to browsery zobrazi a je to i funkcni)
Cloveka bez (IT) budoucnosti oznacuji jako social-amater, "blbec"
Popravde receno vubec nechapu, jestli jste vas prispevek napsal jako reakci na muj nazor, protoze me to pripadne uplne mimo.
Kupodivu zrovna ja (a tim se vubec nechci chlubit) jsem byl jednu dobu u kolegu trosku neoblibeny, protoze jsem dost prosazoval standardy, prave pri vyvoji intranetovych aplikaci (kde si jinak opravdu kazdy bastli co sam uzna za vhodne). A kupodivu se to ukazalo jako spravna cesta, i kdyz rezistence byla docela velka (nikdo se samozrejme nechtel zbavit starych navyku).
U toho bodu 2 (clovek bez budoucnosti) jsem se opravdu musel zasmat. Samozrejme me skola (SS) zaklady algoritmizace nenaucila, vzdyt nas ucitel byl pred nami maximalne o jednu vyucovaci hodinu a nektere jeho rady (ty co nevycetl "z Hrusky") byly vylozene kontraproduktivni (nehlede na to, ze se stejne ucila zejmena syntaxe a semantika, ale obecna algoritmizace uz ne). Co se clovek nenaucil sam, to mu potom (na VS) zatracene chybelo (treba nelinearni datove struktury).