Sprawdzanie, czy plik lub katalog istnieje ze skryptu Bash
Bash służy do automatyzacji regularnie wykonywanych poleceń w systemie Linux. Polecenia przeznaczone do operacji na plikach/katalogach są dość często używane i zwykle przed wykonaniem takiego polecenia musimy sprawdzić, czy dany plik lub katalog istnieje. Zobaczmy, jak przeprowadzić tę kontrolę.
Składnia i użycie
Pliki
Aby sprawdzić, czy plik istnieje, użyj następującej składni:
[ -F ]
Ekspresja [ -F ]
zwraca 0, tj. sukces, jeśli istnieje, a jeśli nie istnieje, zwraca stan niezerowy. Zazwyczaj jest to używane jako warunek w
Jeśli
oświadczenie.
if [ -f ] to fi
Aby zanegować zwróconą wartość, po prostu poprzedź -F
z operatorem negacji (!
).
Jeśli [ ! -f ] to fi
W takim przypadku warunek zostanie spełniony, jeśli plik nie istnieje, ponieważ zwrócony status niezerowy (fałsz) zostanie zanegowany i uznany za 0 (prawda).
Zwróć uwagę, że jeśli plik do sprawdzenia nie istnieje w bieżącym katalogu i istnieje w innym katalogu, należy podać pełną ścieżkę do pliku zamiast tylko nazwy pliku.
Katalogi
Podobna składnia jak przy sprawdzaniu plików jest używana do sprawdzania katalogów.
[ -D ]
Podobnie jak instrukcja dla plików, ta instrukcja zwraca 0, tj. sukces, jeśli katalog istnieje, a wartość niezerowa, tj. status niepowodzenia jest zwracany, jeśli nie istnieje. Jest to również powszechnie używane w
Jeśli
warunek oświadczenia.
jeśli [ -d ] to fi
Aby zanegować zwrócony status, poprzedź -D
z operatorem negacji (!
).
Jeśli [ ! -d ] to fi
Warunek zostanie spełniony (status 0) w tym przypadku, jeśli katalog nie istnieje, i nie powiedzie się (stan inny niż zero), jeśli katalog istnieje.
Jak wspomniano wcześniej w przypadku plików, jeśli katalog do sprawdzenia istnieje w innej lokalizacji, a nie w bieżącym katalogu, należy wprowadzić całą ścieżkę katalogu zamiast tylko nazwy katalogu.
💡 Składnia nawiasów ( [...]
) użyte tutaj jest w rzeczywistości poleceniem Linuksa o nazwie test
. Opcje -F
oraz -D
to cechy tego polecenia. Aby uzyskać więcej informacji, zobacz stronę podręcznika testu ( człowiek test
).
Sprawdź ze skryptu Bash
W powyższych przykładach użyliśmy składni bezpośrednio na terminalu. Powłoka, gdy napotka pętlę lub instrukcję warunkową (Jeśli
w naszym przypadku) kontynuuje monit i pozwala użytkownikowi wprowadzić kontynuację bloku.
Tej samej składni można użyć w skrypcie Bash.
ten #!/kosz/bash
na początku określa interpreter, który ma być użyty podczas wykonywania pliku. Chociaż Bash jest obecnie najczęściej używaną powłoką, niektórzy użytkownicy wolą powłoki takie jak zsh
, który należy podać w miejscu bash na początku tego pliku.
Aby nadać uprawnienia do wykonywania dla tego pliku uruchom:
chmod +x test.sh
Wreszcie, uruchomić plik, uruchomić:
./test.sh