Podczas pracy z Bash i skryptami powłoki może być konieczne sprawdzenie, czy katalog lub katalog plik istnieje lub nie istnieje w Twoim systemie plików.
Na podstawie tego warunku możesz wyjść ze skryptu lub na przykład wyświetlić komunikat ostrzegawczy dla użytkownika końcowego.
Aby sprawdzić, czy plik plik lub katalog istnieje w Bash, zamierzasz użyć „testów Bash”.
W tym samouczku nauczysz się, jak sprawdzić, czy plik lub katalog istnieje w skrypcie Bash.
Spis treści
Sprawdź, czy plik istnieje
Aby sprawdzić, czy plik istnieje w Bash , musisz użyć opcji „-f” (dla pliku) i określić plik, który chcesz sprawdzić.
Na przykład, powiedzmy chcesz sprawdzić, czy plik „/ etc / passwd” istnieje w twoim systemie plików, czy nie.
W skrypcie napisałbyś, jeśli instrukcja.
Sprawdź istnienie pliku przy użyciu krótszych formularzy
W niektórych przypadkach możesz chcieć sprawdzić, czy plik istnieje bezpośrednio w powłoce Bash.
Aby sprawdzić, czy plik istnieje w Bashu przy użyciu krótszych formularzy, określ opcję „-f” w nawiasach i dołącz polecenie, które chcesz uruchomić, jeśli się powiedzie.
Korzystając z przykładu użytego wcześniej, jeśli chcesz sprawdzić, czy plik „/ etc / passwd” istnieje przy użyciu krótszych formularzy, napisz następujące polecenie
Jak więc działa to polecenie?
Krótsze formularze są ściśle powiązane ze statusami wyjścia.
Kiedy uruchamiasz polecenie w Bashu, zawsze kończy się ono ze statusem błędu: 0 dla błędów i liczb większych niż 0 dla błędów (1, 2… 6 itd.)
W tym przypadku składnia „& &” sprawdzi, czy stan wyjścia polecenia po lewej to równe zero: w takim przypadku wykona polecenie po prawej stronie, w przeciwnym razie nie wykona go.
Protip: możesz użyj „echo $ {?}”, aby zobaczyć status wyjścia ostatniego uruchomienia polecenia
Sprawdzanie wielu plików
W w niektórych przypadkach możesz chcieć sprawdzić czy w systemie plików istnieje wiele plików czy nie.
Aby sprawdzić czy w Bashu istnieje wiele plików, użyj flagi „-f” i określ pliki do sprawdzenia oddzielone operatorem „& &”.
Sprawdź, czy plik nie istnieje
Z drugiej strony możesz chcieć sprawdzić, czy plik nie istnieje w Twoim systemie plików.
Aby sprawdzić, czy plik nie istnieje używając Bash, musisz użyć znaku „!” symbol, po którym następuje opcja „-f” i plik, który chcesz sprawdzić.
Podobnie możesz użyć krótszych formularzy, jeśli chcesz szybko sprawdzić jeśli plik nie istnieje bezpośrednio w Twoim terminalu.
Pamiętaj, że można również sprawdzić, czy plik nie istnieje, używając znaku „||” Operator.
„||” operator wykona polecenie po prawej stronie wtedy i tylko wtedy, gdy polecenie po lewej stronie zawiedzie (tzn. zakończy pracę ze statusem większym niż zero).
Aby sprawdzić, czy plik nie istnieje, używając „||” operatora, po prostu sprawdź, czy istnieje, używając flagi „-f” i określ polecenie do uruchomienia, jeśli się nie powiedzie.
Sprawdź, czy katalog istnieje
Aby sprawdzić, czy katalog istnieje w Bash, musisz użyć opcji „-d” i określić nazwę katalogu do sprawdzenia.
Jako przykład, powiedzmy, że chcesz sprawdzić w Bash, czy katalog / etc istnieje w twoim systemie.
Aby sprawdzić jego istnienie, napiszesz następujący skrypt Bash
Podczas wykonywania tego skryptu otrzymasz następujące dane wyjściowe
Sprawdź istnienie katalogu za pomocą krótsze formularze
W niektórych przypadkach możesz być zainteresowany sprawdzeniem, czy katalog istnieje, czy nie bezpośrednio w powłoce Bash.
Aby sprawdzić, czy katalog istnieje w Bashu, użyj krótszego formularze, określ opcję „-d” w nawiasach i dołącz polecenie, które chcesz uruchomić, jeśli się powiedzie.
Powiedzmy, że chcesz na przykład sprawdzić, czy katalog„ / etc ”istnieje.
Używając krótszej składni, możesz napisać następujące polecenie.
Tworzenie kompletnego skryptu Bash
Jeśli stwierdzasz, że sprawdzasz wiele razy dziennie, czy plik (lub wiele) istnieje w systemie plików, może to być przydatne jest posiadanie skryptu, który może zautomatyzować to zadanie.
W tej sekcji utworzysz skrypt Bash, który może przyjmować wiele nazw plików i zwracać, jeśli istnieją lub nie.
Jeśli tak się nie stanie, na standardowym wyjściu zostanie wyświetlona prosta wiadomość z powiadomieniem.
Utwórz nowy skrypt Bash i spraw, aby był wykonywalny za pomocą chmod.
Oto zawartość skryptu, który ma być używany do dynamicznego sprawdzania, czy pliki istnieją.
Zapisz skrypt i dodaj utworzony folder „bin” do zmiennej środowiskowej PATH.
Teraz, gdy Twój skrypt jest dostępny z dowolnego miejsca w systemie, możesz wywołać swój skrypt i rozpocząć sprawdzanie czy pliki istnieją, czy nie.
Świetnie!
Utworzyłeś niestandardowe, aby sprawdzić, czy pliki istnieją w Twoim systemie plików, czy nie.
Podsumowanie
W tym samouczku nauczyłeś się, jak sprawdzić, czy plik istnieje, czy nie, używając testów Bash i krótkiej składni Bash.
Podobnie nauczyłeś się jak można sprawdzić, czy katalog istnieje.
Na koniec napisałeś kompletny skrypt Bash, który akceptuje dynamiczne argumenty w celu sprawdzenia, czy istnieje wiele plików.
Jeśli interesuje Cię programowanie Bash lub administracja systemem Linux, na naszej stronie mamy pełną sekcję poświęconą temu zagadnieniu, więc koniecznie sprawdź to!