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:
$ dotknij plik testowy.ciiNazwa utworzonego przeze mnie pliku to „testfile.sh”, „.rozszerzenie sh” wskazuje plik skryptu powłoki:
Otwórz „plik testowy.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ę "-fa”aby sprawdzić istnienie pliku.
Napisz poniższy skrypt:
#!/bin/bashecho "Wpisz swoją nazwę pliku"
przeczytaj nowyplik1
if [ -f "$nowyplik1" ]
następnie
echo "Znaleziono plik"
jeszcze
echo "Nie znaleziono pliku"
fi
Wróć do terminala i uruchom plik, aby wydrukować dane wyjściowe:
./Nazwa pliku.ciiW terminalu zostanie wyświetlony komunikat o odmowie dostępu.
Spraw, aby był wykonywalny, wykonując poniższe polecenie:
$chmod +x plik testowy.cii
Wprowadź nazwę pliku, a wydrukuje wynik:
2) Wpisując nazwę pliku podczas pisania skryptu:
Inny sposób na znalezienie pliku poprzez podanie nazwy pliku podczas pisania skryptu. Mamy trzy sposoby na sprawdzenie dostępności pliku. Pierwsza używa polecenia „test”, druga używa „if” z wyrażeniem w nawiasach kwadratowych, a trzecia również z „if”, ale podwójnymi nawiasami kwadratowymi, 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
if test -f "$nazwapliku";
następnie
echo "Znaleziono $plik."
jeszcze
echo "$plik nie został znaleziony"
fi
Wynik:
Ponieważ nie ma takiego pliku w moim katalogu, kod wyświetla komunikat „Nie znaleziono pliku”.
2) jeżeli [ Wyrażenie ]
Skopiuj następujący skrypt, aby sprawdzić, czy plik istnieje, czy nie:
#!/bin/bashnazwa_pliku=mojplik.tekst
if [ -f "$nazwa pliku" ];
następnie
echo "Znaleziono $nazwa pliku."
jeszcze
echo "nie znaleziono nazwy pliku"
fi
Wynik:
3) jeśli [[ Wyrażenie ]]
Skopiuj poniższy skrypt i wklej go na terminalu:
#!/bin/bashnazwa_pliku=plik testowy
if [[ -f "$nazwapliku" ]];
następnie
echo "Znaleziono $nazwa pliku."
jeszcze
echo "$nazwa pliku nie została znaleziona"
fi
Wynik:
Aby sprawdzić katalog:
3) Wpisując nazwę katalogu podczas pisania skryptu
Użyj "-re” flaga sprawdzająca istnienie katalogu.
W poniższym skrypcie „dir11” to zmienna, w której przechowujesz plik, który znajdujesz; w tym przykładzie chcę sprawdzić, czy nazwa katalogu „testDir” istnieje, czy nie.
#!/bin/bashdir11=testDir
if [ -d "$katalog11" ]
następnie
echo "Znaleziono katalog"
jeszcze
echo "Nie znaleziono katalogu"
fi
Wynik:
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:
echo "wpisz nazwę katalogu directory."
przeczytaj Katalog1
if [ -d "Katalog1" ]
następnie
echo "znaleziono katalog"
jeszcze
echo "katalog nie został znaleziony"
fi
Wynik:
Sprawdzenie pliku bez użycia instrukcji „if”:
Polecenie „test” można wykonać bez wyrażenia „if””. Wyświetli dane wyjściowe tylko wtedy, gdy plik istnieje; w przeciwnym razie nie byłoby wyjścia:
Napisz skrypt:
- test -f mójplik.txt && echo "znaleziono plik"
- [ -f mójplik.txt ] && echo "Znaleziono $plik."
- [[ -f mójplik.txt ]] && echo "Znaleziono $plik."
Wynik:
Sprawdzenie katalogu bez użycia instrukcji „if”:
Użyj poniższych instrukcji, aby sprawdzić, czy katalog istnieje, czy nie:
- [[ -d katalogTest ]] && echo "katalog istnieje"
- 2) [ -d katalog testowy ] && echo "katalog istnieje"
Wynik:
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”:
if [ -f nowy_plik.txt -a -f nowy plik.tekst ]; następnie
echo "Oba pliki istnieją."
fi
Inny sposób to:
#!/bin/bashif [[ -f nowy_plik.txt && -f nowy plik.tekst ]]; następnie
echo "Oba pliki istnieją."
fi
Wynik:
2) Sprawdzanie wielu plików bez użycia instrukcji „if”:
Użyj poniższej instrukcji, aby sprawdzić wiele plików jednocześnie 1 bez użycia „if”:
- [[ -f nowy_plik.txt && -f nowy plik.txt ]] && echo “Oba pliki są zamykane.”
- [[ -f nowy_plik.txt && -f nowy plik.txt ]] && echo “Oba pliki są zamykane.”
Wynik:
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ę użycia „if”, zagnieżdżonego „if-else” i bez instrukcji „if” do sprawdzenia pliku lub katalogu. Przyjrzeliśmy się również, jak sprawdzić wiele plików lub katalogów.