Celem tego przewodnika jest omówienie istnienia pliku w systemie za pomocą skryptów bash:
Jak sprawdzić istnienie pliku za pomocą skryptów bash:
1) Wpisując nazwę pliku w terminalu:
Najpierw musimy stworzyć plik skryptu bash, użyj poniższego polecenia:
$dotykaćplik testowy.sh
Nazwa utworzonego przeze mnie pliku to testfile.sh, rozszerzenie .sh wskazuje na plik skryptu powłoki:
Otwórz testfile.sh w dowolnym edytorze tekstu. Następnie napisz skrypt, zapisz go, naciskając Zapisz.
Jednym ze sposobów jest znalezienie pliku, prosząc użytkownika o nazwę pliku w terminalu.
Posługiwać się -F aby sprawdzić istnienie pliku.
Napisz poniższy skrypt:
#!/kosz/bashwyrzucił „Wprowadź swoją nazwę pliku”
czytaćnowyplik1
Jeśli [ -F '$nowyplik1' ]
następnie
wyrzucił „Plik został znaleziony”
w przeciwnym razie
wyrzucił „Nie znaleziono pliku”
być
Wróć do terminala i uruchom plik, aby wydrukować dane wyjściowe:
./nazwapliku.shW terminalu zostanie wyświetlony komunikat o odmowie dostępu.
Spraw, aby był wykonywalny, wykonując poniższe polecenie:
$chmod+ x plik testowy.sh
Wprowadź nazwę pliku, a wydrukuje wynik:
2) Wpisując nazwę pliku podczas pisania skryptu:
Innym sposobem na znalezienie pliku jest podanie nazwy pliku podczas pisania skryptu. Mamy trzy sposoby sprawdzenia dostępności pliku. Pierwszy z nich używa polecenia test, drugi używa if z wyrażeniem w nawiasach kwadratowych, a trzeci jest również z podwójnymi nawiasami kwadratowymi if ale, jak wskazano poniżej:
- test WYRAŻENIE.
- jeśli [ WYRAŻENIE ]
- jeśli [[ WYRAŻENIE ]]
Zrozummy to na przykładach:
1) test [ Wyrażenie ]
Skopiuj podany skrypt i wklej go do edytora, zapisz:
Nazwa pliku=plik1
Jeśli test -F '$nazwa pliku';
następnie
wyrzucił '$plikznalazł.'
w przeciwnym razie
wyrzucił '$pliknie znaleziono'
być
Wyjście:
Ponieważ w moim katalogu nie ma takiego pliku, kod wyświetla komunikat Nie znaleziono pliku.
2) jeżeli [ Wyrażenie ]
Skopiuj następujący skrypt, aby sprawdzić, czy plik istnieje, czy nie:
#!/kosz/bashNazwa pliku=mojplik.txt
Jeśli [ -F '$nazwa pliku' ];
następnie
wyrzucił '$nazwa plikuznalazł.'
w przeciwnym razie
wyrzucił 'nazwa pliku nie została znaleziona'
być
Wyjście:
3) jeśli [[ Wyrażenie ]]
Skopiuj poniższy skrypt i wklej go na terminalu:
#!/kosz/bashNazwa pliku=plik testowy
Jeśli [[ -F '$nazwa pliku' ]];
następnie
wyrzucił '$nazwa plikuznalazł.'
w przeciwnym razie
wyrzucił '$nazwa plikunie znaleziono'
być
Wyjście:
Aby sprawdzić katalog:
3) Wpisując nazwę katalogu podczas pisania skryptu
Użyj -D flaga, aby sprawdzić istnienie katalogu.
W poniższym skrypcie dir11 jest zmienną, w której przechowujesz znaleziony plik; w tym przykładzie chcę sprawdzić, czy nazwa katalogu testDir istnieje, czy nie.
#!/kosz/bashreż11= katalog testowy
Jeśli [ -D '$dir11' ]
następnie
wyrzucił „Znaleziono katalog”
w przeciwnym razie
wyrzucił „Nie znaleziono katalogu”
być
Wyjście:
2) Wpisując nazwę pliku w terminalu:
Po uruchomieniu polecenia w terminalu, aby sprawdzić, czy katalog istnieje, czy nie, musisz podać nazwę katalogu, którego szukasz:
wyrzucił 'wpisz nazwę swojego katalogu.'
czytaćKierunek1
Jeśli [ -D „Kier1” ]
następnie
wyrzucił „znaleziono katalog”
w przeciwnym razie
wyrzucił 'katalog nie został znaleziony'
być
Wyjście:
Sprawdzenie pliku bez użycia instrukcji if:
Polecenie test może być wykonane bez instrukcji if. Wyświetli dane wyjściowe tylko wtedy, gdy plik istnieje; w przeciwnym razie nie byłoby wyjścia:
Napisz skrypt:
- test -Fmojplik.txt&& wyrzucił 'plik został znaleziony'
- [ -Fmojplik.txt] && wyrzucił '$plikzostał znaleziony.'
- [[ -Fmojplik.txt]] && wyrzucił '$plikzostał znaleziony.'
Wyjście:
Sprawdzenie katalogu bez użycia instrukcji if:
Użyj poniższych instrukcji, aby sprawdzić, czy katalog istnieje, czy nie:
- [[ -DtestDir]] && wyrzucił „katalog istnieje”
- 2) [ -DtestDir] && wyrzucił „katalog istnieje”
Wyjście:
Sprawdzanie wielu plików/katalogów:
1) Sprawdzanie wielu plików za pomocą instrukcji if:
Użyj flagi -a, aby sprawdzić istnienie różnych plików, zamiast używać zagnieżdżonych instrukcji if/else:
Jeśli [ -Fnowy_plik.txt-do -Fnowyplik.txt];następnie
wyrzucił „Oba pliki istnieją”.
być
Inny sposób to:
#!/kosz/bashJeśli [[ -Fnowy_plik.txt&& -Fnowyplik.txt]];następnie
wyrzucił „Oba pliki istnieją”.
być
Wyjście:
2) Sprawdzanie wielu plików bez użycia instrukcji if:
Użyj poniższej instrukcji, aby sprawdzić wiele plików jednocześnie 1bez użycia, jeśli:
- [[ -Fnowy_plik.txt&& -Fnowyplik.txt]] && wyrzuciłOba pliki są zamykane.
- [[ -Fnowy_plik.txt&& -Fnowyplik.txt]] && wyrzuciłOba pliki są zamykane.
Wyjście:
Wniosek:
W tym artykule pokazano, jak używać skryptów bash do sprawdzania pliku lub katalogu. Wykorzystaliśmy różne opcje, aby sprawdzić dostępność pliku. Po pierwsze, używamy polecenia test z różnymi flagami. Następnie nauczyliśmy się, jak używać if, zagnieżdżonych if-else i bez instrukcji if do sprawdzania pliku lub katalogu. Przyjrzeliśmy się również, jak sprawdzić wiele plików lub katalogów.