Bash, jeśli -e i -s i inne operatory testów plików

Bash, jeśli -e i -s i inne operatory testów plików
W plikach Linux operatorzy testów są używane do sprawdzania atrybutów powiązanych z plikiem: autor pliku, praw administracyjny i własność pliku oraz do sprawdzenia, czy są one symboliczne, czy nie. Kiedy mamy do czynienia z plikami, konieczne jest sprawdzenie ich istnienia i tego, czy zawierają one jakąkolwiek treść, czy nie w tym celu; lub jeśli używana jest instrukcja wraz z operatorami testowymi.

Operatorzy testów plików w BASH są również używane do testowania plików, jak wyjaśnia sama nazwa. Z pomocą tych operatorów możemy przetestować różne aspekty pliku, takie jak wtedy, gdy ten plik jest zapisany lub czytelny. Istnieje wielu operatorów testów plików, a każdy ma inną rolę i użycie. Operatorzy testów plików pomogą nam zapobiegać błędom podczas scenariuszy w Bash. Aby wykonać to zadanie, używamy instrukcji IF-Else. Instrukcja IF-ELSE działa jako bardzo przydatne narzędzie do obsługi błędów w skryptach Bash.

Celem operatora „-e” jest poinformowanie nas, czy plik istnieje w określonym katalogu, czy nie. Operator „-S” mówi nam, że plik nie ma rozmiaru zerowego, co oznacza, że ​​ten operator mówi nam, czy plik w określonym katalogu zawiera dowolne dane, czy nie. Inni operatorzy są przyzwyczajeni do radzenia sobie z plikami, ale najważniejsze są „-e” i „-s” i są często używane.

Jak korzystać z operatorów testowych:

Na tej ilustracji postaramy się wykorzystać wszystkich operatorów testowych do wykonywania różnych zadań w plikach.

Przykład nr. 1: Korzystanie z operatora tekstu if -e

W tym przykładzie spróbujemy użyć operatora testu if -e, który służy głównie do sprawdzenia, czy plik istnieje w katalogu, czy nie. Teraz najpierw utworzymy nowy plik.

Linux@Linux-virtualbox: ~ $ nano testerator.cii

Po uruchomieniu powyższego polecenia otworzy pusty plik, teraz napiszemy kod, w którym utworzymy warunek, że plik „pracownik.TXT „Istnieje wyświetli polecenie Echo, które zawiera wiadomość„ Plik istnieje ”. W przeciwnym razie wykona komunikat „plik nie istnieje”. Testerator plików będzie zawierał zawartość wymienioną poniżej.

#!/bin/sh
file = "pracownik.tekst"
Jeśli [-e $ plik]
Następnie
Echo „Plik istnieje”
w przeciwnym razie
echo „Plik nie istnieje”
fi

Po zapisaniu pliku za pomocą polecenia bash uruchomimy poniżej wspomniane polecenie, które przeprowadzi testeroperator.plik sh.

Linux@Linux-virtualbox: ~ $ Bash Testeroperator.cii

Po uruchomieniu powyższego polecenia odczytuje kod pliku Testeroperator, który wykonuje i sprawdzi plik w katalogu domowym. W takim przypadku nie mamy żadnego pliku w katalogu, więc wykonał to wyniki poniżej.

Wyjście:

plik nie istnieje

Teraz najpierw utworzymy nowy plik o nazwie „pracownik.tekst". Następnie ponownie uruchom polecenie, aby sprawdzić, czy wykryje plik, czy nie. Jak pokazano poniżej, tym razem plik istnieje w katalogu domowym.

Teraz uruchommy powyższe polecenie ponownie. Tym razem wyświetla dane wyjściowe pokazane poniżej, w których komunikat „Plik istnieje”.

Wyjście:

plik istnieje

Przykład nr. 2: Korzystanie z operatora tekstu if -d

W tym przykładzie wypróbujemy inny operator testowy, który jest operatorem „-D”, który służy do sprawdzenia, czy sprawdzony przez nas plik jest katalogiem, czy nie. Tym razem stworzymy nowy katalog, który nazwaliśmy „pracownikiem”, jak widać na fragmencie poniżej.

Teraz zmodyfikujemy „Testeroperator.plik sh ”, w którym zmienimy nazwę pliku„ pracownik.txt ”po prostu„ pracownik ”. Następnie przekazanie operatora „-D” w instrukcji IF wraz z „plikiem $”, który zostanie pobrany. I zmiana wiadomości, która zostanie wyświetlona jako wyjście, zapiszemy plik. Teraz „Testeratorator.plik sh ”zawiera następującą zawartość.

#!/bin/sh
file = "pracownik"
Jeśli [-d $ plik]
Następnie
Echo „Pracownik jest katalogiem”
w przeciwnym razie
Echo „Pracownik nie jest katalogiem”
fi

Po zmodyfikowaniu „Testeroperator.sh ”, uruchomimy polecenie bash wraz z nazwą pliku:

Linux@Linux-virtualbox: ~ $ Bash Testeroperator.cii

Gdy powyższe polecenie zostanie wykonane, wyświetli się dane wyświetlane poniżej, w których drukuje komunikat:

Wyjście:

Pracownik jest katalogiem

Przykład nr. 3: Korzystanie z operatora tekstu if -s

W tym przykładzie spróbujemy użyć operatora „-S”, który służy do sprawdzenia, czy plik zawiera jakąkolwiek treść, czy nie. W tym celu będziemy używać już utworzonego pliku, którego użyliśmy w przykładzie 1 o nazwie „Pracownik.tekst". Najpierw zmodyfikujmy testoperator plików.sh, w którym przekazamy opcję „-S” wraz z nazwą pliku do naszej instrukcji IF i przypisz plik „pracownik.tekst". Zmieni to również wiadomość, która zostanie wyświetlona jako wyjście.

#!/bin/sh
file = "pracownik.tekst"
Jeśli [-d $ plik]
Następnie
Echo „Pracownik.txt jest pusty "
w przeciwnym razie
Echo „Pracownik.txt nie jest pusty ”
fi

Teraz zapiszymy i zamkniemy plik „Testeroperator.sh ”i uruchom polecenie wspomniane poniżej w terminalu.

Linux@Linux-virtualbox: ~ $ Bash Testeroperator.cii

Kiedy powyższe polecenie uruchomi się, wykonuje instrukcję else, ponieważ pracownik.TXT zawiera treść. Tak więc ignoruje polecenie ówczesnego instrukcji echo.

Wyjście:

pracownik.TXT nie jest pusty

Teraz usuniemy treść z „pracownika.txt ”, a następnie ponownie uruchom polecenie. Gdy powyższe polecenie jest ponownie wykonywane, wyświetla komunikat ówczesny, ponieważ nie zawiera w nim żadnej zawartości. Poniższy przykład to wyjście polecenia, które wykonaliśmy po usunięciu zawartości pliku.

Wyjście:

pracownik.TXT jest pusty

Przykład nr. 4: Za pomocą operatora tekstu if -r

W tym przykładzie zaimplementujemy inny operator testowy, który jest „-r”. Ten operator służy do sprawdzenia, czy plik jest czytelny dla użytkownika, czy nie. W tym celu zmodyfikujemy testeroperator.plik txt poprzez zastąpienie operatora „-D” na „-R”. Zmieni również komunikat wyjściowy, jeśli plik jest czytelny. Wyświetli wiadomość „Pracownik.TXT jest czytelny, a jeśli plik nie jest czytelny, wyświetli instrukcję ELEY. Teraz „Testeratorator.TXT ”zawiera następującą zawartość:

#!/bin/sh
file = ”pracownik.tekst"
Jeśli [-r $ plik]
Następnie
Echo „Pracownik.TXT jest czytelny ”
w przeciwnym razie
Echo „Pracownik.TXT jest czytelny ”
fi

Teraz uruchomimy poniższe polecenie, aby wykonać zapisany w nim kod.

Linux@Linux-virtualbox: ~ $ Bash Testeroperator.cii

Po uruchomieniu powyższego polecenia wyświetlone dane wyjściowe zostanie wydrukowane na terminalu.

Wyjście:

pracownik.TXT jest czytelny

Wniosek

Omówiliśmy najważniejszą część systemu zgłoszenia, operatorzy testów. Podczas pracy z plikami operatorzy testów są najważniejszym narzędziem dostarczonym przez pakiety Linux. Po wprowadzeniu celu operatorów testowych wyjaśniliśmy je, wdrażając tych operatorów w różnych przykładach.