Life of a hacker – adventures via experiments

aLoHa

aLoHa

A lustaság fél egészség - avagy scriptelés ingyen kajáért!

2019. január 12. - aLoHa

"A lustaság fél egészség." - mondja a bölcsesség. A kóderek legnagyobb fegyvere pedig a scriptelés.

Sok feladatot itthon és munkahelyemen is scriptekkel oldok meg. A scriptek hasznosak, mert amennyiben monoton és ismétlődő feladatokat végzünk, könnyen beleeshetünk abba a hibába, hogy megszokásból csináljuk azt, és így elsiklunk bizonyos hibák felett, hibát véthetünk.

Egy egyszerű script könnyen rendszerezheti/elláthatja egyszerűbb feladatainkat, gyakorlatilag hiba nélkül, amennyiben a megfelelő eszközöket használjuk, és a scrip be és kimenetét is validáljuk. Validáció és részletes invalid input tesztelés nélkül a script kétélű fegyver!

Mivel a scriptnyelvek magas szintű programozási nyelvek közé tartoznak, így sok esetben nem kell foglalkoznunk fájlkezeléssel, modulok megírásával vagy modulok validálásával.

Scriptjeimben - habár Windows-t használok - előnyben részesítem a linux parancssoros kódok windowsra fordított változatait, így közvetlenül használhatom korábbi DOS batch és bash scriptelési tapasztalataimat. Továbbá a linux toolok jó része évtizedes múltra tekint vissza, nagy részük pedig nyílt forrású, így "több szem többet lát" alapon megbízhatóak. További előny, ha a tool multiplatform, így mégtöbb platformon használható.

 

Jöjjön a gyakorlati felhasználás:

Ételrendelős weboldalon futottam bele egy napi nyereményjátékba, mely arról szól, hogy napi egy felhasználót random módon kisorsolnak, aki aznap ingyen főételt kap.

A történetben egyetlen csavar van, mégpedig, hogy a nyertest nem értesítik, és a nyeremény csak aznap érvényes. Így, ha nem látogatod minden nap az oldalukat, akkor könnyedén lemaradsz a nyeremény ingyen ebédről. Ez nekik különösen hasznos, mert ezzel látogatottságot tartanak fenn, és nem rossz marketingfogás, továbbá a nyertes gyakran nem tud arról, hogy ő nyert, így a kiadás az étterem részéről nulla.

Az ember nem csak lusta, de néha feledékeny is. A kóder pedig egyenesen úgy van vele, hogy a gép forogjon, az alkotó meg pihenjen. Amit automatizálni lehet, azt automatizálni is kell! 

Kód:
curl www.peldaul-etterem.hu > d:\get.txt
findstr "felhasznalonev" d:\get.txt > nul
if %ERRORLEVEL% equ 0 (
echo Nyertel
pause
) else (
echo Nem nyertel
pause
)

Magyarázat:

  • cURL-el lekérem a weboldalt, ahol a napi nyertes neve szerepel, és ezt beleirányítom egy txt fájlba.
  • Findstr-el a fájlban a saját felhasználó nevemet keresem. Értelemszerűen a felhasználónévnek eléggé egyedinek kell lenni, hogy biztosan ne kapjunk fals találatot. Mivel a findstr kimenetére nincs szükségem ezért nul-ba irányítom
  • A findstr dokumentációja alapján futás után az %ERRORLEVEL% (mely egy normál visszatérési érték, olyan mint C nyelvben a return függvény) megadja, hogy van-e találat, vagy nincs. 0 érték esetén van, 1 esetén nincs.
  • 0, vagyis találat esetén a script kiírja, hogy Nyertél,
  • 1, tehát nem talált esetén Nem nyertél.
  • A pause-nek annyi szerepe van, hogy a végeredmény kiírása után a felhasználó nyugtázására vár.

A kód egy borzalmasan primitív példa, és nem is túl szép(igen, én is tudom), de faék egyszerűségű, így aki most kezdene, az is könnyen átláthatja.

Ezen néhány sor segítségével nem maradsz le az esetleges ingyen kajáról! :)

Manapság aki scriptelésre szánja el magát, az már az itt látható DOS/CMD alapú scriptek helyett egyből python-ban kezdjen kódolni. Sokkal modernebb, hatékonyabb, "tisztább, szárazabb érzés" :)

Bash/DOS/CMD-hez jó alap: https://ss64.com

Python-hoz pedig az Udacity Python kurzusait ajánlanám: https://www.udacity.com/learn/python

A bejegyzés trackback címe:

https://al0ha.blog.hu/api/trackback/id/tr9814558626

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása