További kagyló
Jul. 27th, 2020 02:28 amA kagylószkriptek is interaktívvá tehetőek, méghozzá nagyon egyszerűen. Megmutatom, hogy most mit ökörködtem.

Azt hiszem, a dolgok nagyjából önmagukért beszélnek, leszámítva a norvég nyelv notórius használatát (tényleg elnézést, hogy kétnyelvű vagyok).
Szokás szerint intellektuálsznobkodtam, hogy szövegszerkesztőt ne is kelljen indítani.
Ez a gyogyi kis kagylószkript csak annyit csinál, hogy megkérdezi, mi a neved.
A read paranccsal itt a "read"-et utasítjuk arra, hogy a kapott választ tárolja el a navn nevű változóba.
Ezután a szkript köszön, és mondja, hogy heló, örvendetes, hogy itt lát. A $ feladatát a változó neve előtt iszonyatos módon "dereferencia operátor"-nak lehet nevezni szakszerűen. Kevésbé szakszerűen elmagyarázva pedig ez mondja meg nekünk - meg a szkriptnek -, hogy ez egy változó, amelynek az értékét kell itt visszhangozni.
Változókat ám önmagukban is beállíthatunk a kagylóban - vannak ennél hasznosabbak is, de példának megfelel. Nagybetűvel írva környezeti változó lesz belőle.
Ha beállítás előtt így beírjuk, hogy readonly, akkor ez a változó már marad is, nem lehet neki új értéket megadni (szemben azzal, hogy egy nem-írásvédett változónak változhat az értéke. Ezt jól megaszondtam, mondom, hogy mindjárt éjfél!); ha mégis megpróbálnád, akkor a kagyló visszabeszél, hogy írásvédett változó.
Ja! Változót lehet ám csinálni parancsok kimenetéből is.
Klasszikus példa erre a date lehet.
A szintaktika nem terheli meg még az éjféli agyat sem.
$ TODAY=$(date)
Nem kell félni, ha nem szól semmit erre a kagyló. Szabály szerint nem szól. Szabály szerint csak akkor szól, ha valamivel elégedetlen.
Ezután, ha kíváncsiak vagyunk a pontos időre - vagy pontosabban szólva: a gép szerinti pontos időre -, akkor egyszerűen csak ezt a változót íratjuk ki a megszokott kis echo-nkkal. Tisztára ekhós szekerekké fogunk már itt válni:
$ echo $TODAY
ti. 28. juli 00:01:38 +0200 2020
Ennek tükrében, ha a kis köszönőszkriptünkben a read akármilyenváltozó helyébe beírjuk így a whoami parancsot, akkor a felhasználónevünkön fog szólítani.
Érdemes kipróbálni, már csak a hülyeség kedvéért is.
$ cat > koszonjszepen.sh
echo "Heló, $(whoami) !"
Ezután ismét Ctrl-D-vel felfüggesztjük a sznobizmust, ezután végrehajthatóvá teszük a kis filénket, ezután pedig
$ ./koszonjszepen.sh
és már köszön is szépen.
Igen, ez tényleg csak hülyeség.