“Getopts” példák a Linux Mint 20-ban:
A Linux Mint 20 „getopts” parancsának könnyebb és jobb megértése érdekében két példapéldát terveztünk Önnek. Mielőtt rátérne ezekre a szcenáriókra, megnézheti a Linux Mint 20 terminál „getopts” parancsának súgóját, hogy megismerhesse a parancs szintaxisának alapértelmezését. A „help” parancs végrehajtásával megtekintheti ennek a parancsnak a súgóját:
$ getopts --help
A „getopts” parancs súgójában a parancs használatának rövid leírása és szintaxisa található, az alábbi képen látható módon:
Most, amikor áttekintettük a „getopts” parancs súgóját, a következőképpen folytathatjuk példapéldáinkat:
1. eset: Jelzők átadása egy Bash szkriptnek a Linux Mint 20 végrehajtásához:
Ebben a példában egy bash szkriptet fogunk létrehozni, amely egy zászlót vesz be a felhasználótól a bash parancsfájl végrehajtási parancsával együtt. A megadott zászló értékétől függően a megfelelő kimenet jelenik meg. Az ebben a forgatókönyvben szereplő lépések részletes leírása a következő:
1. lépés: Bash szkript írása:
Először írunk egy bash szkriptet a saját könyvtárunkba. Ezt a fájlt getopts-nak neveztük el.SH. A bash szkript tartalma az alábbi képen látható. Az alább látható bash szkriptben van egy „while” hurok, amely a „getopts” paranccsal fut. Itt ezt a „getopts” parancsot arra használjuk, hogy egy zászlót vegyen be a felhasználó inputjául. Ennek a zászlónak értéke lehet „r”, „y” vagy „g”, amelyek a „vörös”, „sárga” és „zöld” színeket jelentik. Az „opció” változót a felhasználó által megadott zászló értékének tárolására használják. Ezután egy „case” utasítást használtunk a megadott zászló értékére, amely testreszabott üzenetet jelenít meg az „option” zászló értékétől függően. Végül lezártuk az „ügy” blokkot az „esac”, a „do” blokkot pedig az „elkészült” utasítással.
2. lépés: A Bash szkript tesztelése:
A bash szkript létrehozása és mentése után itt az ideje, hogy futtassuk. Minden esetet egyesével tesztelünk. Először futtatjuk a bash szkriptet az „-r” jelzővel, hogy meggyőződjünk arról, hogy a megfelelő kimenetet adja-e a következő módon:
$ bash getopts.sh -r
A bash szkript testreszabott kimenete az „-r” jelzővel az alábbi képen látható:
Most futtatjuk a bash szkriptet az „-y” jelzővel, hogy lássuk, a megfelelő kimenetet adja-e a következő módon:
$ bash getopts.sh -y
A bash szkript testreszabott kimenete az „-y” jelzővel az alábbi képen látható:
Most futtatjuk a bash parancsfájlt a „-g” jelzővel, hogy meggyőződjünk arról, hogy a megfelelő kimenetet adja-e a következő módon:
$ bash getopts.sh -g
A bash szkript testreszabott kimenete a „-g” jelzővel az alábbi képen látható:
Végül bármilyen véletlenszerű zászlóval futtatjuk a bash szkriptünket, azaz.e. egy érvénytelen zászló vagy egy olyan zászló, amelyet nem említünk a bash szkriptben, az „-a” szót mondja a következő módon:
$ bash getopts.sh -a
Ezúttal a bash szkriptünk alapértelmezett esete lett végrehajtva, amely hibaüzenetet jelenített meg, mivel érvénytelen zászlót használtunk.
2. eset: Jelzők átadása argumentumokkal együtt egy Bash szkripthez a Linux Mint 20 végrehajtásához:
Ebben a példában egy bash szkriptet fogunk létrehozni, amely egy zászlót és egy argumentumot fog bevinni a felhasználótól a bash parancsfájl végrehajtási parancsával együtt. A megadott flag és argumentum értékétől függően a megfelelő kimenet lesz előállítva. Az ebben a forgatókönyvben szereplő lépések részletes leírása a következő:
1. lépés: Bash szkript írása:
Az erre az esetre használt bash szkript az alábbi képen látható, és nagyon hasonlít az 1. esetünkhöz létrehozotthoz. Az egyetlen különbség az, hogy ezúttal nem engedélyezünk több zászlót. A felhasználó csak az „-r” jelzőt adhatja meg. Ugyanakkor a bash szkriptben az „r” jelzőt követő „:” kettőspont azt jelzi, hogy a felhasználónak állítólag argumentumot is kell adnia. Ez az argumentum az alapértelmezett „OPTARG” változóban lesz tárolva. A megadott argumentum „echo” paranccsal történő megjelenítéséhez egy „$” szimbólumot használtunk az „OPTARG” változó előtt.
2. lépés: A Bash szkript tesztelése:
A bash szkript mentése után itt az ideje tesztelni. Ismét minden esetet egyesével tesztelünk. Először futtatjuk a bash szkriptet az „-r” jelzővel és a „black” minta argumentummal, hogy meggyőződjünk arról, hogy a megfelelő kimenetet adja-e a következő módon:
$ bash getopts.sh -r fekete
A bash szkript testreszabott kimenete az „-r” jelzővel és a „fekete” argumentummal az alábbi képen látható:
Most ezt a szkriptet érvénytelen jelölővel és érvényes argumentummal teszteljük a következő módon:
$ bash getopts.sh -a fekete
Ezúttal a bash szkriptünk alapértelmezett esete lett végrehajtva, amely hibaüzenetet jelenített meg, mivel érvénytelen zászlót használtunk.
Most ezt a bash szkriptet futtatjuk, miközben kihagyjuk a flaget és csak érvényes argumentumot adunk át a következő módon:
$ bash getopts.sh fekete
Ezúttal nem készül kimenet a terminálon, más szavakkal, a bash szkriptünk nem fog végrehajtódni, mivel kihagytunk egy kötelező zászlót.
Végül futtatjuk ezt a bash szkriptet, miközben kihagyjuk az argumentumot, és csak az érvényes jelzőt adjuk át a következő módon:
$ bash getopts.sh -r
Ezúttal is végrehajtásra került a bash szkriptünk alapértelmezett esete, amely hibaüzenetet jelenített meg, mivel kihagytuk a kötelező argumentumot.
Következtetés:
Ez a két példa nagyon jól ábrázolja a „getopts” parancs használatát egy bash szkriptben a Linux Mint 20-ban. Akár bonyolultabb forgatókönyveket is létrehozhat a bash-ban, és párosíthatja őket a „getopts” paranccsal, hogy több argumentumot és jelzőt vegyen fel a felhasználótól inputként.