A Shell-szkriptek írásakor sokszor olyan helyzetbe kerülhet, hogy valamilyen műveletet kell végrehajtania annak alapján, hogy létezik-e fájl vagy sem. .
A Bash fájlban a teszt paranccsal ellenőrizheti, hogy létezik-e fájl, és meghatározza a fájl típusát.
A teszt parancs a következő szintaxis formák egyikét öleli fel:
Ha azt akarja, hogy a szkript hordozható legyen, akkor inkább a régi tesztet használja: ; then echo "$FILE exists."fi
Ha egy másik műveletet szeretne végrehajtani annak alapján, hogy a fájl létezik-e vagy sem használja az if / then konstrukciót:
A teszt parancsot az if utasítás nélkül is használhatja. A && operátor utáni parancs csak akkor hajtódik végre, ha a tesztparancs kilépési állapota igaz,
Ha szeretné futtasson egy parancssort, miután a && operátor egyszerűen göndör zárójelbe zárja a parancsokat ; vagy &&:
Szemben a && -vel, a Az || operátor csak akkor kerül végrehajtásra, ha a tesztparancs kilépési állapota false.
Ellenőrizze, hogy létezik-e könyvtár #
A -d operátorok lehetővé teszik annak tesztelését, hogy egy fájl könyvtár vagy sem.
Például annak ellenőrzésére, hogy létezik-e a /etc/docker könyvtár:
Használhatja a dupla zárójeleket is ; then echo "$FILE does not exist."fi
A fentiekkel megegyező:
Ellenőrizze, hogy létezik-e több fájl #
A bonyolult beágyazott if / else konstrukciók használata helyett a -a (vagy && ; then echo "Both files exist."fi
Ekvivalens változatok az IF utasítás használata nélkül:
fájlteszt operátorok #
A tesztparancs a következő FÁJL operátorokat tartalmazza, amelyek lehetővé teszik bizonyos típusú fájlok tesztelését:
-
-bFILE– Igaz, ha a FILE létezik és egy speciális blokkfájl. -
-cFILE– Igaz ha a FÁJL létezik és egy speciális karakterfájl. -
-dFILE– Igaz, ha a FÁJL létezik és könyvtár. -
-eFILE– Igaz, ha a FÁJL létezik és fájl, függetlenül a típustól (csomópont, könyvtár, socket stb.). -
-fFILE– Igaz, ha a FÁJL létezik és rendes fájl (nem könyvtár vagy eszköz). -
-GFILE– Igaz, ha a FÁJL létezik, és ugyanaz a csoportja van, mint a parancsot futtató felhasználónak. -
-hFILE– Igaz, ha a FÁJL létezik és szimbolikus link. -
-gFILE– Igaz, ha a FÁJL létezik, és set-group-id (sgid) zászló van beállítva. -
-kFILE– Igaz, ha a FÁJL létezik és ragacsos bitjelző van beállítva. -
-L– Igaz, ha a FÁJL létezik és szimbolikus link. -
-OFILE– Igaz, ha a FÁJL létezik, és a parancsot futtató felhasználóé. -
-pFILE– Igaz, ha a FÁJL létezik és cső. -
-rFILE– Igaz, ha a FÁJL létezik és olvasható. -
-SFILE– Igaz, ha a FÁJL létezik és foglalat. -
-sFILE– Igaz, ha a FÁJL létezik és nem nulla méretű. -
-uFILE– Igaz, ha a FÁJL létezik, és a set-user-id (suid) jelző be van állítva. -
-wFILE– Igaz, ha a FÁJL létezik és írható. -
-xFILE– Igaz, ha a FÁJL létezik és exe vágható.
Következtetés #
Ebben az útmutatóban bemutattuk, hogyan lehet ellenőrizni, hogy létezik-e fájl vagy könyvtár a Bash-ban.