Podczas pracy z plikami w dowolnym systemie operacyjnym, użytkownik musi przetestować te pliki pod kątem pewnych aspektów, takich jak ich własność, prawa dostępu, zawartość, istnienie itp. Te aspekty można zrozumieć, łącząc stwierdzenie „if” z różnymi operatorami testów plików w Bash. „if -e” i „if -s” to takie operatory w Bash, używane do testowania istnienia pliku. Różnica między nimi polega na tym, że pierwsza sprawdza tylko istnienie pliku, podczas gdy druga sprawdza również, czy w tym pliku znajduje się jakaś zawartość, czy nie. Dzisiaj postaramy się zrozumieć użycie tych dwóch operatorów, wraz z kilkoma innymi operatorami testów plików w Bash.
Uwaga: Aby zademonstrować użycie operatorów testów plików w Bash, użyliśmy Linux Mint 20.
Przykłady użycia operatorów testów plików w Bash
Istnieją różne sposoby użycia operatorów testowych plików „if -e” i „if -s”. Aby wyjaśnić ich zastosowanie, podzielimy się z Tobą kilkoma przykładami.
Przykład użycia operatora „if -e”
Aby użyć operatora „if -e” w Bash, musisz wykonać następujące kroki:
Najpierw utworzyliśmy pusty plik tekstowy o nazwie Test.txt w naszym katalogu domowym. Następnie stworzyliśmy plik bash o nazwie FileTestOperators.sh w tym samym katalogu. Po utworzeniu tego pliku wpisaliśmy w naszym pliku skrypt pokazany na poniższym obrazku. W tym skrypcie bash zadeklarowałem zmienną o nazwie „file” i przypisałem jej nasz plik tekstowy o nazwie Test.txt jako jego wartość. Następnie mamy instrukcję „if -e”, która daje „prawdziwe” wyjście, jeśli jakiś określony plik istnieje.
Aby przetestować nasz skrypt, uruchomimy go za pomocą polecenia podanego poniżej:
$ bash Operatorzy Testów Plików.cii
W naszym przypadku, ponieważ plik tekstowy istniał, dlatego wyjście naszego skryptu będzie prawdziwe, jak pokazano na poniższym obrazku:
Przykład użycia operatora „if -s”
Aby użyć operatora „if -s” w Bash, należy wykonać poniższe czynności:
W tym przykładzie nasz skrypt bash jest taki sam, jak użyliśmy powyżej. Właśnie zmieniliśmy wyrażenie „if -e” na „if -s”. Ponadto użyliśmy tego samego pustego pliku tekstowego Test.tekst.
Teraz, gdy uruchomimy ten skrypt, wynik będzie fałszywy, ponieważ operator „if -s” zwraca prawdę, jeśli plik istnieje, a także jeśli nie jest pusty. Ponieważ w naszym przypadku, mimo że plik istniał, nadal był pusty, dlatego nasze dane wyjściowe okazały się fałszywe, jak pokazano na poniższym obrazku:
Aby ta flaga była prawdziwa, napiszemy jakiś fikcyjny tekst w naszym pliku tekstowym, jak pokazano poniżej:
Następnie ponownie uruchamiamy nasz skrypt bash i tym razem wynik będzie prawdziwy, jak pokazano na poniższym obrazku, ponieważ plik tekstowy zawiera teraz trochę tekstu.
Przykłady użycia innych operatorów testów plików
Oprócz operatorów „if -e” i „if -s” istnieją również inne operatory testowania plików. Poniżej podzielimy się z Tobą niektórymi z najważniejszych operatorów testów plików, innych niż te, które zostały omówione powyżej.
Przykład użycia operatora „if -d”
Aby użyć operatora „if -d” w Bash, należy wykonać poniższe czynności:
W tym przykładzie nasz skrypt bash jest taki sam, jak użyliśmy powyżej. Właśnie zmieniliśmy wyrażenie „if -s” na „if -d”. Ponadto użyliśmy tego samego pliku tekstowego Test.tekst.
Operator „if -d” zwraca prawdę, jeśli plik jest katalogiem, w przeciwnym razie będzie fałszywy. Ponieważ nasz plik tekstowy nie był katalogiem, wynik będzie fałszywy, jak pokazano na poniższym obrazku:
Przykład użycia operatora „if -h”
Aby użyć operatora „if -h” w Bash, musisz wykonać następujące kroki:
W tym przykładzie nasz skrypt bash jest taki sam, jak użyliśmy powyżej. Właśnie zmieniliśmy wyrażenie „if -d” na „if -h”. Jednak tym razem do testów użyliśmy innego pliku, który w rzeczywistości był dowiązaniem symbolicznym o nazwie NewBash.cii.
Operator „if -h” zwraca prawdę, jeśli plik jest dowiązaniem symbolicznym, w przeciwnym razie będzie fałszywy. Ponieważ nasz plik testowy był dowiązaniem symbolicznym, wynik będzie prawdziwy, jak pokazano na poniższym obrazku:
Przykład użycia operatora „if -r”
Aby użyć operatora „if -r” w Bash, musisz wykonać następujące kroki:
W tym przykładzie nasz skrypt bash jest taki sam, jak użyliśmy powyżej. Właśnie zmieniliśmy wyrażenie „if -h” na „if -r”. Ponadto użyliśmy tego samego pliku tekstowego Test.tekst.
Wyjście operatora „if -r” będzie prawdziwe, jeśli bieżący użytkownik może odczytać plik, w przeciwnym razie będzie fałszywe. Ponieważ nasz plik tekstowy był przez nas czytelny, wynik będzie prawdziwy, jak pokazano na poniższym obrazku:
W ten sam sposób możesz użyć operatorów „if -w” i „if -x”, aby sprawdzić, czy plik jest zapisywalny i wykonywalny odpowiednio przez obecnego właściciela.
Przykład użycia operatora „if -O”
Aby użyć operatora „if -O” w Bash, należy wykonać poniższe czynności:
W tym przykładzie nasz skrypt bash jest taki sam, jak użyliśmy powyżej. Właśnie zmieniliśmy wyrażenie „if -r” na „if -O”. Ponadto użyliśmy tego samego pliku tekstowego Test.tekst.
Wyjście operatora „if -O” będzie prawdziwe, jeśli bieżący użytkownik jest właścicielem pliku, w przeciwnym razie będzie fałszywe. Ponieważ nasz plik tekstowy był naszą własnością, wynik będzie prawdziwy, jak pokazano na poniższym obrazku:
Wniosek
W tym artykule poinformowano czytelnika o korzystaniu z różnych operatorów testów plików w Bash przy użyciu systemu operacyjnego Linux. Korzystając z tych operatorów testowania plików, użytkownik może pracować z plikami bez żadnych potencjalnych trudności. Istnieje również kilka innych operatorów testów plików, które mogąbyćużywane do różnych celów Jednak najczęściej używane są te omówione w tym artykule.