Portál AbcLinuxu, 26. dubna 2024 18:24


Dotaz: Preco pisat skripty ?

23.9.2003 23:33 Kinnon
Preco pisat skripty ?
Přečteno: 288×
Odpovědět | Admin
Dobry vecer, Uz otazky vyplyva, ze som skutocne zaciatocnik:) Ale vrta mi to hlavou. Preco pisat skripty? Preco je to tak silny nastroj? Coho je vsetko skript schopny? Da sa porovnat s C ? Co je pri skriptovanie take, co nieje v C jazyku ? Cital som si referencne prirucky, ale na tieto otazky som nenasiel odpoved:) Teda skor, len strucne...zaujimal by ma vas postoj. Dakujem.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.9.2003 23:42 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Preco pisat skripty ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
skript ti zautomatizuje neustale se opakujici cinnost, je jednoduchej, ma sva omezeni, ale daj se v nem delat docela pekny veci. Proc bych mel na pocitac instalovat gcc a hromadu knihoven a hlavickovych souboru, kdyz je nepotrebuju a vystacim si s shellovym skriptem?
-- Nezdar není hanbou, hanbou je strach z pokusu.
23.9.2003 23:46 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Preco pisat skripty ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
To je fakt praštěná otázka ;-) Tobě se nestává, že spouštíš nějaké podobné příkazy shellu (nebo něčeho jiného) za sebou pořád dokola? Tak proto. Je možné vzít N programů/příkazů a spustit je po sobě jako jeden, případně nějak pospojované rourami etc. ... přidat argumenty, proměnné, podmínky, cykly, definovat funkce, etc. Můžeš totéž udělat v C. Ale chci vidět, jak se s tím budeš mořit...
Balu avatar 24.9.2003 09:40 Balu | skóre: 25 | blog: Ja a Linux | Praha
Rozbalit Rozbalit vše Preco pisat skripty ?
V niektorych veciach by bolo pouzitie C alebo ineho jazyka asi take, ako ist do trafiky kupit si noviny a na dopravu pouzit vrtulnik. Ucel to splni, ale ... :-)
Počítač bez Windows je ako kakao bez kečupu.
24.9.2003 09:46 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Preco pisat skripty ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože to jde. - to je odpověď na otázku v titulku. Odpověď na to co všechno jde udělat ve scriptu nalezneš v man bash a info GNU. To je ale hodně těžké čtení. Mnohem lepší představu najdeš v 2 kapitole knihy Linux for nutshell (vyšlo v Computerpressu v českém překladu pod názvem Linux v kostce a její čtení je pro člověka vychovaného na DOS a jeho nadstavbách opravdu těžkým šokem), když si uvědomíš, že ty programy můžeš řetězit do kolony (tak se říká tomu, když programy zřetězíš přes rouru a to se dočteš v man bash, nebo v dalších návodech jako Úvod do unixu a pod). Ve stručnosti: Na většinu věcí na které potřebuješ v nejmenovaném ... milion různých utilitek a nebo si na to něco nasmolit v packalu, nebo C ti v bash + GNU core-utils stačí jeden řádek (někdy pořádně dlouhý) a nebo si na to napíšeš script. Slovo shell (slupka) vystihuje podstatu toho co to umí. Jedná se o slupku, která obaluje jádro systému a umožňuje prakticky skoro vše co jádro dovede se spouštěním procesů, posílání signálů a přesměrování vstupů a výstupů. (Původně to bylo psáno právě na ověření jestli to funguje správně :-) .) To je doplněno o jednoduchý programovací jazyk a když se k tomu přidají opravdu velmi silné nástroje pro práci s textem, tak je to velmi účinné.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
24.9.2003 10:12 Tomáš Bláha
Rozbalit Rozbalit vše Preco pisat skripty ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skripty jsou mocné proto, že volají mocné unixové utility;-) To také předurčuje jejich použití - správa systému. Konkrétní příklad: Máme Sambou sdílené svazky, ty jsou někde v /_data. Každý svazek má síťový odpadkový koš realizovaný pomocí VFS modulu recycle. Nasledující skript najde všechny koše a vymaže z nich soubory starší než týden. (Bez parametru jen spočítá velikost.)
#!/bin/sh

if [ "$1" == "-force" ]; then
        for a in `find /_data -type d|grep .recycle$`; do
                echo " * Emptying $a"
                chmod a+rwx $a
                find $a -type f -mindepth 1 -atime +7 -exec rm "{}" \;
        done
else
        du -csh `find /_data -type d|grep .recycle$`
fi
Dovedete si představit, jak dlouhý by byl program v Cčku?
24.9.2003 10:23 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Preco pisat skripty ?
Necelé tři stránky (s použitím ftw(3)), což není zas tak strašné, ale ladil by se 10x déle... P.S.: find|grep je příspvěvek do soutěže o nejneužitečnější grep ;-) find umí -name...
24.9.2003 17:25 Tomáš Bláha
Rozbalit Rozbalit vše Preco pisat skripty ?
Mám rád grep :-P ftw jsem neznal, dík.
24.9.2003 10:19 Maud Lebowski
Rozbalit Rozbalit vše Preco pisat skripty ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
protoze C zpracovava informace jinak a shell tak obsahuje to co C neumi a navic to dela cloveku blizsim zpusobem, napriklad pro kopirovani souboru ma shell prikaz cp soubo1 soubor2 zatimco v C by jsi zrejme musel napsat par radku ruznych fopen, wfrite tak aby jsi dostal stejneho efektu. C je velmi nizkopurovnovy jazyk zatimco shell naopak vysokourovnovy, tj prace v nem je daleko jednoduzsi a rychlejsi. Jinak vec je programovani. Zpravidla se veci delaji tak, ze problem se rozlozi na relativne elementarni casti a ty se pak implementuji v C/C++ a tyhle programy se pak slozi pomoci shellu do velke casti. Modifikace a udrzba takoveho progamu je mnohem jednoduzsi nez to napsat cele do jednoho giganta v C.
24.9.2003 18:35 Ondřej Čečák | skóre: 33
Rozbalit Rozbalit vše Preco pisat skripty ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
jeste bych pridal neco, co nikdo jiny nezminil:

skript se da velice trivilanim zpusobem napsat a upravit a neni nutne pokazde kompilovat. Napsat v C program, ktery udela to same jako par radu "skriptu", ktery vola program iptables neni problem, ale pokud chcete neco pridat, zdlouhave kompilaci a nahrazovani se vyhnes jednoduchym pridanim radku :o)
-- "Ja vim, on vi, ty pico!"
24.9.2003 19:08 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Preco pisat skripty ?
Hm... chtěl jsem sem napsat úplně jinou odpověď, o tom co je a co není skript... ale zamotal jsem se do toho ;-) Nicméně, programovací jazyk se skriptovitostí příliš nesouvisí -- Perl či Python lze kompilovat do binárek (a lze v nich psát rozsáhlé OO, GUI aplikace, které já tedy nenazývám skripty), a naopak tinycc umožňuje psát skripty v C... takže si to přeberte.

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.