BASH programozás

Bash, ha -e és -s, és más File Test operátorok

Bash, ha -e és -s, és más File Test operátorok

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.

A League of Legends telepítése az Ubuntu 14-re.04
Ha rajongsz a League of Legendsért, akkor ez egy lehetőség arra, hogy teszteld a League of Legends játékot. Ne feledje, hogy a LOL a PlayOnLinux rends...
Telepítse a legújabb OpenRA stratégiai játékot az Ubuntu Linux rendszerre
Az OpenRA egy ingyenes / ingyenes valós idejű stratégiai játékmotor, amely újjáépíti a korai Westwood játékokat, mint például a klasszikus Command & C...
Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...