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:
-
-b
FILE
– Igaz, ha a FILE létezik és egy speciális blokkfájl. -
-c
FILE
– Igaz ha a FÁJL létezik és egy speciális karakterfájl. -
-d
FILE
– Igaz, ha a FÁJL létezik és könyvtár. -
-e
FILE
– Igaz, ha a FÁJL létezik és fájl, függetlenül a típustól (csomópont, könyvtár, socket stb.). -
-f
FILE
– Igaz, ha a FÁJL létezik és rendes fájl (nem könyvtár vagy eszköz). -
-G
FILE
– Igaz, ha a FÁJL létezik, és ugyanaz a csoportja van, mint a parancsot futtató felhasználónak. -
-h
FILE
– Igaz, ha a FÁJL létezik és szimbolikus link. -
-g
FILE
– Igaz, ha a FÁJL létezik, és set-group-id (sgid
) zászló van beállítva. -
-k
FILE
– 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. -
-O
FILE
– Igaz, ha a FÁJL létezik, és a parancsot futtató felhasználóé. -
-p
FILE
– Igaz, ha a FÁJL létezik és cső. -
-r
FILE
– Igaz, ha a FÁJL létezik és olvasható. -
-S
FILE
– Igaz, ha a FÁJL létezik és foglalat. -
-s
FILE
– Igaz, ha a FÁJL létezik és nem nulla méretű. -
-u
FILE
– Igaz, ha a FÁJL létezik, és a set-user-id (suid
) jelző be van állítva. -
-w
FILE
– Igaz, ha a FÁJL létezik és írható. -
-x
FILE
– 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.