~FUN - ksh basics :)

Ha esetleg valaki tudni szeretné mi a különbség a különböző fajta programozók között :))

http://www.bolthole.com/solaris/ksh-sampleprog.html

Edit: Az oldal amúgy nagyon jól tükrözi a példákon keresztül, hogy egy egyszerű kis feladat esetén is mennyi mindenre illik/kell figyelni :)

Hozzászólások

Most picit megnyugodtam; kb. senior admin/systems programmer szinten szoktam megírni a saját scriptjeim [max. 1-2000 sorosak jelenleg], pedig attól még nagyon-nagyon sok minden választ el :)

--
A gyors gondolat többet ér, mint a gyors mozdulat.

Tudom itt inkabb a gondolkodasmod a lenyeg, de valahogy hianyolom belole a

: ${EDITOR:=vi}

,

for f; do ...

, stb szeru megoldasokat amikell newbie-k ritkabban talalkoznak.

Ez a kis szösszenet inkább szerintem arról szól, hogy ha van egy nagyon alap kis dolog amit meg akarsz csinálni, akkor is mennyi ellenőrzést kell beleiktatnod a kódba ahhoz, hogy nagyjából le tudd fedni a lehetséges hibák nagy %-át ( plusz ugye a kommentezés, ami a hiba feltárásban segít nagyban ). A további lehetséges scriptelési trükkök már más lapra tartoznak :)
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

Igen ezt ertettem "gondolkodasmod" alatt. Csak hogyhamar senior system programmer meg akarmicsoda, szivessen lattam volna par trukkot. Nekem legalabbis ez a fun resze. :)
A hibakezeles meg pont az amivel altalaban senki nem szeret foglalkozni, ezert is jo ez a cikk, hogy felhivja ra a figyelmet.

Hibakereséssel most hagyjál.. kb 5 órája szopok azzal, hogy egy 500 MB plaintext logot átnyálazzak, hogy rájöjjek az app mi a picsért esett össze (*Éljen a virtualizáció*) :DD
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

Most már megvan, de had ne mondjam, hogy milyen Root Cause Analyzes-t fogok rá adni ( a virtualizáció miatt van egy boxon belül szolid 63 gép, aztán egymástól lopkodták a CPU-t. A szegény gépnek meg hiába volt kiallokálva 8 virtual CPU, ha a többi gép ellopta a számítási kapacitást, aztán a proginak egyik fő funkciója timeoutra futott, aztán dobott egy hátast.. Most nézhetem át a teljes boxot, hogy valami értelmes design plan-t varázsoljak a 63 gép virtualizációjának csiszolására :))
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

Szerintem meg az egesz baromsag. hiba ellenorzes meg kommentek meg dokumentacio egy ksh scriptbe.. Az meg hogy a 3.dik verzio olvashatobb lenne mint az elso egyenesen vicces.
Annak is sok ertelme van hogy elfogd a hasznalt eszkozok hibauzeneteit es ujakat gyartsal helyettuk..
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.

A saját error code-ok pedig nagyon is hasznosak tudnak ám lenni, főleg ha OO-ban gondolkodsz (scriptelésnél nem gyakori, de előfordul, hogy 1ik script a másik számára ad át értékeket, és a különböző feldolgozott adatokkal ping-pongoznak). A commentelés pont azét kell, hogy lásd, hogy te, vagy más kb mit akart megvalósítani az adott résznél (ebből amúgy arra is könnyebben rá lehet jönni, ha az elmélet jó volt, csak az implementálás sikerült xarul).
A hiba ellenőrzés, meg sorry, de must have.. Utálom az olyan kódot, ahol csak annyit nyökög a script, hogy "Sorry,something was wrong... terminating.." Igen is nézze meg mi volt a baja, és minimum egy olyan üzenetet dobjon elém ami nem igényli, hogy a teljes kódsort végignyálazzam, meg dbx/set -x/whateva alatt indítsam, hogy meg tudjam fogni a gázos pontot..
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

basszus. Az elso 3 verzional vegig szarul kezelte a parametereket a $@-cal. Az utolsonal mar (majdnem) jol leirja, hogy "$@" kell (bar a megjegyzes a "$*" -rol *igy* baromsag), ellenben padlot fogtam ettol:


PATH=$PATH:/usr/ccs/bin
if [ ! -x /usr/ccs/bin/sccs ] ; then
	print ERROR: sccs not installed on this machine. Cannot continue.
	usage
	exit 1
fi

Mi a lof@sznak allitja at a PATH-t, ha utana eleresi utvonallal teszteli????? Es mi van akkor ha nekem van sccs parancsom a /usr/bin-ben? A kod maradek resze lefutna, ellenben mar itt kilep. Szuper. (Megjegyzes, az sccs parancs mint olyan eleg sok regi rendszerben egyaltalan nem volt implementalva, hanem kellett hivogatni az SCCS nativ parancsait.) Azt nem mondanam, hogy ma nagyon megerne megtanulni, de ra lehet keresni a GNU CSSC nevu klonjara - kisse regen nem foglalakoznak vele amugy :-)