Bármelyik operációs rendszer fájljaival dolgozik, a felhasználónak kötelezően tesztelnie kell ezeket a fájlokat bizonyos szempontok, például tulajdonjoguk, hozzáférési jogaik, tartalmuk, létezésük stb. Ezeket a szempontokat kitalálhatjuk, amikor összekapcsoljuk az „if” utasítást a Bash különböző fájl tesztelő operátorokkal. Az „if -e” és „if -s” olyan operátorok a Bash-ban, amelyeket egy fájl létezésének tesztelésére használnak. A kettő közötti különbség az, hogy az előbbi csak egy fájl létezését teszteli, míg az utóbbi azt is ellenőrzi, hogy van-e benne tartalom vagy sem. Ma megpróbáljuk megérteni ennek a két operátornak a használatát, valamint néhány más fájlteszt operátort Bash-ban.
Megjegyzés: A fájl tesztelő operátorok Bash használatának bemutatásához a Linux Mint 20-at használtuk.
Példák a fájlteszt operátorok használatára a Bash-ban
Különböző módon lehet használni az „if -e” és „if -s” fájlteszt operátorokat. Használatuk magyarázatához néhány példát megosztunk veletek.
Példa az „if -e” operátor használatára
Az „if -e” operátor Bash használatához kövesse az alábbi lépéseket:
Először hoztunk létre egy üres szöveges fájlt Test néven.txt a saját könyvtárunkban. Ezután létrehoztunk egy FileTestOperators nevű bash fájlt.sh ugyanabban a könyvtárban. A fájl létrehozása után beírtuk a fájlba a következő képen látható szkriptet. Ebben a bash szkriptben deklarált egy „file” nevű változót, és hozzárendelte a Test nevű szövegfájlunkat.txt értéke. Ezután van egy „if -e” utasításunk, amely egy „true” kimenetet produkál, ha bármilyen meghatározott fájl létezik.
A szkript teszteléséhez az alábbiakban megadott paranccsal futtatjuk:
$ bash FileTestOperators.SH
Esetünkben, mivel a szöveges fájl létezett, ezért a szkriptünk kimenete igaz lesz, amint az a következő képen látható:
Példa az „if -s” operátor használatára
Az „if -s” operátor Bash használatához hajtsa végre az alábbi lépéseket:
Ebben a példában a bash szkriptünk megegyezik a fentiekkel. Most változtattuk az „if -e” állítást „if -s” -re. Használtuk ugyanazt az üres szöveges fájlt Test.txt.
Most, amikor futtatjuk ezt a szkriptet, a kimenet hamis lesz, mert az „if -s” operátor igazat ad vissza, ha létezik fájl, és ha nem is üres. Mivel esetünkben, bár létezett a fájl, mégis üres volt, ezért a kimenetünk hamisnak bizonyult, amint az a következő képen látható:
Annak érdekében, hogy ez a zászló igaz legyen, írunk néhány dummy szöveget a szöveges fájlunkba, az alábbiak szerint:
Ezután futtatjuk újra a bash szkriptünket, és ezúttal a kimenet igaz lesz, amint az a következő képen látható, mert a szövegfájlban van némi szöveg.
Példák más fájlteszt operátorok használatára
Az „if -e” és „if -s” operátorokon kívül vannak más fájl teszt operátorok is. Az alábbiakban megosztjuk veletek a legfontosabb fájlteszt operátorokat, a fentieken kívül.
Példa az „if -d” operátor használatára
Az „if -d” operátor Bash használatához hajtsa végre az alábbi lépéseket:
Ebben a példában a bash szkriptünk megegyezik a fentiekkel. Most változtattuk az „if -s” állítást „if -d” -re. Ugyanazt a tesztfájlt használtuk.txt.
Az „if -d” operátor igazat ad vissza, ha a fájl könyvtár, ellenkező esetben hamis lesz. Mivel a szöveges fájlunk nem volt könyvtár, ezért a kimenet hamis lesz, amint az a következő képen látható:
Példa az „if -h” operátor használatára
Az „if -h” operátor Bash használatához kövesse az alábbi lépéseket:
Ebben a példában a bash szkriptünk megegyezik a fentiekkel. Most változtattuk az „if -d” állítást „if -h” -re. A teszteléshez azonban ezúttal egy másik fájlt használtunk, ami valójában egy szimbolikus link volt a NewBash néven.SH.
Az „if -h” operátor true-val tér vissza, ha a fájl szimbolikus link, különben hamis lesz. Mivel a tesztfájlunk szimbolikus link volt, ezért a kimenet igaz lesz, amint az a következő képen látható:
Példa az „if -r” operátor használatára
Az „if -r” operátor Bash használatához kövesse az alábbi lépéseket:
Ebben a példában a bash szkriptünk megegyezik a fentiekkel. Most változtattuk az „if -h” állítást „if -r” -re. Ugyanazt a tesztfájlt használtuk.txt.
Az „if -r” operátor kimenete akkor lesz igaz, ha az aktuális felhasználó el tudja olvasni a fájlt, ellenkező esetben hamis lesz. Mivel a szöveges fájlunkat mi olvashattuk, ezért a kimenet igaz lesz, amint az a következő képen látható:
Ugyanígy használhatja az „if -w” és „if -x” operátorokat annak ellenőrzésére, hogy a fájl írható-e és futtatható-e az aktuális tulajdonos által.
Példa az „if -O” operátor használatára
Az „if -O” operátor Bash használatához hajtsa végre az alábbi lépéseket:
Ebben a példában a bash szkriptünk megegyezik a fentiekkel. Most változtattuk az „if -r” állítást „if -O” -ra. Ugyanazt a tesztfájlt használtuk.txt.
Az „if -O” operátor kimenete igaz lesz, ha az aktuális felhasználó birtokolja a fájlt, ellenkező esetben hamis lesz. Mivel a szöveges fájlunk a tulajdonunk volt, ezért a kimenet igaz lesz, amint az a következő képen látható:
Következtetés
Ez a cikk tájékoztatta az olvasót a Bash fájlok különböző operációs operátorainak használatáról a Linux operációs rendszert használva. Ezeknek a fájlteszt operátoroknak a használatával a felhasználó számára nagyon kényelmes, hogy bármilyen nehézség nélkül dolgozzon a fájlokkal. Van néhány más fájlteszt operátor is, amelyek különböző célokra használhatók. A cikkben tárgyaltakat azonban leggyakrabban használják.