K čemu programování v BASH?

Jakub L.

Re:K čemu programování v BASH?
« Odpověď #15 kdy: 08. 03. 2013, 08:47:04 »
backup skripty, automatizované spouštěče (např. věcí z MESS nebo DOSBOXu), screenshotery s automatickým uploadem, generátory tabulek do Mediawiki, připojovací skripty pro modemy, automatické přejmenovávače, kráječ MP3 na menší kusy...


Program

Re:K čemu programování v BASH?
« Odpověď #16 kdy: 09. 03. 2013, 11:34:49 »
Chápu-li správně dotaz jako "Kdy ještě použít bash?", tak osobně preferuju odpověď "téměř nikdy". Pokud chcete jen automatizovat pár příkazů nebo Vám hodně pomůžou unixové utilitky, jako sed, awk, grep atd. tak ano. Ale pokud to zavání nějakou logikou, tak je lepší použít ruby/python/perl.

Re:K čemu programování v BASH?
« Odpověď #17 kdy: 17. 03. 2013, 18:38:42 »
Já taky nechápu, proč tolik lidí ještě v bashi programuje a proč ho tolik firem požaduje např. pro testování software. Mě přijde syntaxe bashe strašně těžkopádná a nelogická. Pokud tam už má být nějaký cyklus a podmínky, tak daleko lepší mi přijde napsat skript v perlu nebo pythonu a z něj volat systémové příkazy.

Re:K čemu programování v BASH?
« Odpověď #18 kdy: 17. 03. 2013, 18:52:14 »
Já taky nechápu, proč tolik lidí ještě v bashi programuje a proč ho tolik firem požaduje např. pro testování software. Mě přijde syntaxe bashe strašně těžkopádná a nelogická. Pokud tam už má být nějaký cyklus a podmínky, tak daleko lepší mi přijde napsat skript v perlu nebo pythonu a z něj volat systémové příkazy.
Keďže v perl a python takmer nepoznám, zložité veci napíšem najčastejšie v php (napr. cykly a práca s databázou atď) a ešte zložitejšie (napríklad spracovanie xls súborov a výsledky do Mysql) v Jave.

dsafdsaf

Re:K čemu programování v BASH?
« Odpověď #19 kdy: 18. 03. 2013, 00:17:18 »
BASHu sa vyhybam oblukom lebo:
1) je hovadsky pomaly
2) zdaleka nema tolko funkcii ako ZSH

Pokial potrebujem, aby nejaky script bezal rychlo, napisem ho radsej v DASH/ASH. Pokial ide o narocnejsi script, napisem ho v ZSH. ZSH sice nie je take rychle ako DASH, ale pise sa v nom velmi pohodlne. Pravda, na niektore tasky sa jednoducho hodi viac sed (a sedscript) atd.

Moje scripty zahrnaju vestko mozne:
  • rc.d skripty
  • "tooly" na procesovanie suborov s urcitym typom dat - ich konverzia atd.
  • fetchovanie dat z webu
  • automatizacia systemovych taskov
Nemyslim si, ze script, ktory vola 10-krat grep a sed a cat, ma este zmysel oznacovat scriptom nejakeho konkretneho shellu. Takyto script by v pohode mohol bezat pod hocakym shellom, kedze vacsina procesovania sa deje v subprocesoch. Ale chapem, ze bezna analogia je shell script = BASH script.

Pokial je teda otazka "na co pouzivam BASH script", tak poviem "na nic, lebo je pomaly". Pokial je otazka, "na co pouzivam shellscripty", tak poviem "na vsetko, len aby som to nemusel robit manualne".

Samozrejme, ked ide do tuheho (a rychlost nie je podmienka), tak to radsej zbastlim v Pythone, pretoze je dodavany "aj s baterkami" (rozumej modulmi).


j

Re:K čemu programování v BASH?
« Odpověď #20 kdy: 18. 03. 2013, 08:46:48 »
...

jasne, 1000 a jeden stroj maj instalovany zsh ... aha, on je bash prakticky uplne na vsem, ale jiste je vyhodna strategie napsat script 10x, abych si moh vzdy vybrat prave dostupne nejrychlejsi prostredi ...

Mimochodem, kdyz chci aby bylo neco rychle, prisu to v assambleru.

Re:K čemu programování v BASH?
« Odpověď #21 kdy: 18. 03. 2013, 09:20:02 »
BASHu sa vyhybam oblukom lebo:
1) je hovadsky pomaly
2) zdaleka nema tolko funkcii ako ZSH

Pokial potrebujem, aby nejaky script bezal rychlo, napisem ho radsej v DASH/ASH. Pokial ide o narocnejsi script, napisem ho v ZSH. ZSH sice nie je take rychle ako DASH, ale pise sa v nom velmi pohodlne. Pravda, na niektore tasky sa jednoducho hodi viac sed (a sedscript) atd.

Samozrejme, ked ide do tuheho (a rychlost nie je podmienka), tak to radsej zbastlim v Pythone, pretoze je dodavany "aj s baterkami" (rozumej modulmi).

Protože python je hovadsky rychlý, že? :D

Z mé praxe se vyplatí neupřednostňovat shell žádný. Když napíšu soubor s funkcemi pro shell, tak chci, aby fungoval pokud možno v BASH, ASH, DASH, atd. úplně stejně. Nebudu přece psát knihovnu funkcí pro každý shell znovu. Proto váš příspěvek opravdu nechápu. Všechny interpretované / skriptovací jazyky jsou pomalé. Ale o rychlost u programů pro shell fakt nejde. Spíš o rychlost psaní programu.

McFly

  • *****
  • 560
    • Zobrazit profil
    • E-mail
Re:K čemu programování v BASH?
« Odpověď #22 kdy: 18. 03. 2013, 09:36:44 »
Můj nejdelší skript v BASHi byl skript firewallu na bráně ve firmě, má 387 řádků a pracuje s několika konfiguračními/datovými soubory.
 Neumím si představit, že bych jej měl napsaný v něčem jiném než v BASHi, i když... :-)

Mareg

Re:K čemu programování v BASH?
« Odpověď #23 kdy: 18. 03. 2013, 10:07:29 »
Hezká ukázka toho jak pitomá otázka může vést k ještě pitomější diskuzi.

student

Re:K čemu programování v BASH?
« Odpověď #24 kdy: 18. 03. 2013, 11:00:45 »
Nebudu přece psát knihovnu funkcí pro každý shell znovu.
+1; aj ked som bol za to skritizovany s tym, ze bashizmy su citatelnejsie ako sed, ale u mna to neplati..

BASHu sa vyhybam oblukom lebo:
1) je hovadsky pomaly
Viac ide o algoritmy / napad ako o programovaci jazyk.
Jedna pomerne znama firma raz uverejnila pomerne trivialnu ulohu pre zaujemcov o pozicia programatora: mate velke (x*32bit pre rozne x) cisla zapisane v hexa - co riadok, to cislo - treba vypustit poslednych 32bit kazdeho cisla a z takto spracovanych cisel zistit najdlhsie prefixy - potom oznamit ich pocet. (V skutocnosti islo o to, ze ostatne by sa zmazali / oznamili inemu modulu)

Tam bolo zaujimave, ze pomerne jednoducha (nie prilis optimalizovana) implementacia v C pomocou trie (rovnako ako implementacia pomocou RB-stromov) to zvladla na nejakom datasete za 2s a shell script (tusim hlavne sort a awk) to zvladol za 2,5s.

Ano, niekto povie, ze je bash / shell pomaly, ale ked sa zapocita doba pisania tohto programu / skriptu, tak jednoznacne vyhrava. A u shell scriptov ide prave o toto.

Mimochodem, kdyz chci aby bylo neco rychle, prisu to v assambleru.
OT: vazne dokazete pisat rychlejsie programy v ASM ako v C? Ja som sa snazil na roznych architekturach a vsade ma prekonal kompilator z dobre napisaneho* C (vystup kompilatora som dokazal este vylepsit, ale o to mi nejde).

*tj. boli tam klucove slova restrict vsade, kde patrili; okrem toho explicitna vektorizacia a moznosti ako -fomit-frame-pointer -ftree-vectorize atd.

dsafdsaf

Re:K čemu programování v BASH?
« Odpověď #25 kdy: 18. 03. 2013, 15:13:46 »
Protože python je hovadsky rychlý, že? :D
Toto mala byt snaha o ironiu? Aby vam to fungovalo, musel by som tvrdit, ze Python je rychly, co som nikde neurobil... a zrejme by ste to vedeli aj vy, keby ste si poriadne precitali moj prispevok.

Proto váš příspěvek opravdu nechápu.
To vidim. Skratka mame rozne nazory.

jasne, 1000 a jeden stroj maj instalovany zsh ... aha, on je bash prakticky uplne na vsem
Zaujimave tvrdenie. Pod "je" asi myslite, ze BASH casto byva sucastou zakladnej instalacie systemu. Iste viete, ze aj ine shelly byvaju sucastou zakladnej instalacie systemu. Jednym dychom dodavam, ze netvrdim, ze ZSH je jeden z nich. Ale vdaka bohu, ze inicializacne scripty prakticky v BASHi nie su.

Mimochodem, kdyz chci aby bylo neco rychle, prisu to v assambleru.
Vazne mate vela casu.

Nebudu přece psát knihovnu funkcí pro každý shell znovu.
+1; aj ked som bol za to skritizovany s tym, ze bashizmy su citatelnejsie ako sed, ale u mna to neplati..
+1 pre sed v kniznici funkcii. Ale ak je taka funkcia len wrapper pre sed script, v podstate to nie je shell funkcia (nevyuziva syntax daneho/ziadneho shellu).

JS

Re:K čemu programování v BASH?
« Odpověď #26 kdy: 18. 03. 2013, 21:44:12 »
Protože python je hovadsky rychlý, že? :D

Mezi skriptovacimi jazyky je pomerne rychly. A tipoval bych, ze nekolikrat rychlejsi nez Bash, aspon u vypoctu, ale benchmark jsem nedelal. Mozna pomuze: http://webcache.googleusercontent.com/search?q=cache:KnpvNsrHq9YJ:www.murga-linux.com/puppy/viewtopic.php%3Fmode%3Dattach%26id%3D16212%26sid%3D9ec56d74e859eb32ab750e74981181a7+&cd=3&hl=cs&ct=clnk&gl=cz&client=firefox-a

Treba Pythoni seznamy a slovniky jsou podle toho vic nez 20x rychlejsi nez Bashove.

Re:K čemu programování v BASH?
« Odpověď #27 kdy: 19. 03. 2013, 10:17:44 »
Protože python je hovadsky rychlý, že? :D

Mezi skriptovacimi jazyky je pomerne rychly. A tipoval bych, ze nekolikrat rychlejsi nez Bash, aspon u vypoctu, ale benchmark jsem nedelal. Mozna pomuze: http://webcache.googleusercontent.com/search?q=cache:KnpvNsrHq9YJ:www.murga-linux.com/puppy/viewtopic.php%3Fmode%3Dattach%26id%3D16212%26sid%3D9ec56d74e859eb32ab750e74981181a7+&cd=3&hl=cs&ct=clnk&gl=cz&client=firefox-a

Treba Pythoni seznamy a slovniky jsou podle toho vic nez 20x rychlejsi nez Bashove.

No to ano. Pokud srovnáváte python s bashem, tak to opravdu rychlý je. Ale s c/cpp se to nedá porovnat..

Rax

Re:K čemu programování v BASH?
« Odpověď #28 kdy: 19. 03. 2013, 10:55:46 »
OT: vazne dokazete pisat rychlejsie programy v ASM ako v C? Ja som sa snazil na roznych architekturach a vsade ma prekonal kompilator z dobre napisaneho* C (vystup kompilatora som dokazal este vylepsit, ale o to mi nejde).

Ručně optimalizovaný assembler dosahuje až 10x vyššího výkonu než nejlepší veledílo v C/C++ a jsou tam k dispozici záležitosti o kterých se 99 % dnešních programátorů ani nesnilo. Přesto se psát v ASM finančně vyplatí jen veeeeelmi zřídka.

Tam bolo zaujimave, ze pomerne jednoducha (nie prilis optimalizovana) implementacia v C pomocou trie (rovnako ako implementacia pomocou RB-stromov) to zvladla na nejakom datasete za 2s

U takové triviální úlohy v C je rychlost menší než rychlost čtení z HDD na pováženou.

Ale o rychlost u programů pro shell fakt nejde. Spíš o rychlost psaní programu.

Přesně tak, o rychlost v shellu vůbec nejde.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:K čemu programování v BASH?
« Odpověď #29 kdy: 19. 03. 2013, 12:14:28 »
Bash používám na to, na co bych na Windows použil Powershell