Jak znaleźć katalog, w którym skrypt bash znajduje się z skryptu

Jak znaleźć katalog, w którym skrypt bash znajduje się z skryptu
Podczas pracy ze skryptami Bash pomocne jest znanie lokalizacji skryptu. Może to być szczególnie pomocne podczas pracy z względnymi ścieżkami plików lub podczas próby wykonania innych skryptów lub poleceń z wnętrza skryptu. W tym artykule przyjrzymy się kilku różnym sposobom określenia katalogu skryptu bashu z samego skryptu.

Jak znaleźć katalog, w którym skrypt bash znajduje się z skryptu

Podczas skryptów Bash możesz wymagać lokalizacji skryptu do automatyzacji różnych zadań. Istnieją dwa rodzaje ścieżek w Linux:

  • Ścieżka krewnych: Względny to obecny katalog roboczy.
  • Absolutna ścieżka: To jest kompletna ścieżka katalogu i plików.

Jednym z najczęstszych sposobów określenia lokalizacji skryptu BASH jest użycie PWD Komenda. PWD Komenda (Drukuj katalog roboczy) pokaże obecny katalog.

Tak więc w wielu sytuacjach po prostu używając PWD polecenie nie działa, ponieważ daje tylko ścieżkę obecnie działającego katalogu.

Na przykład, jeśli skrypt jest w Pliki katalog i wykonywane z Pulpit wtedy wyjście będzie zawierać /home/usr/komputer nie jest to lokalizacja pliku skryptu BASH /home/usr/pobieranie.

Ten samouczek polega na uzyskaniu ścieżki katalogu, w którym plik skryptu Bash znajduje się z skryptu.

Jak uzyskać ścieżkę katalogu, w której znajduje się plik skryptu bash

Innym sposobem określenia katalogu skryptu BASH jest użycie Dirname Komenda. Dirname Polecenie wykonuje ścieżkę pliku jako argument i zwraca część katalogu ścieżki.

Używać Dirname polecenie określenia katalogu skryptu, nazywasz polecenie ścieżką do ostatniego komponentów nie-slash do skryptu jako argument.

Aby uzyskać więcej informacji na temat Dirname Wykonaj następujące polecenia w terminalu:

$ man Dirname

Tylko Dirname nie będzie działać, potrzebujemy kolejnego polecenia Readlink. Readlink Wydruk poleceń Rozstrzygnął symboliczny link. Uzyskaj więcej informacji o tym poleceniu, uruchamiając:

$ Man Readlink

Teraz, Utwórz skrypt:

$ sudo nano myscript.cii

I wpisz:

#!/bin/bash
echo „The Bash Script Path to $ (dirname -„ $ (readLink -f - „$ 0”) ”;)”;

Aby uruchomić skrypt, użyj:

$ bash myscript.cii

Zmieńmy katalog i zobaczmy, jakie jest wyjście:

Notatka: W jednym przypadku powyższy skrypt nie zadziała, jeśli plik jest pozyskiwany zamiast wykonywania, jak można go zobaczyć w następującym wyjściu:

Wyjście jest /dom/sam/komputer podczas gdy plik skryptu jest obecny w /Home/Sam informator.

Wniosek

Podsumowując, istnieje wiele sposobów określenia katalogu skryptu bashu z samego skryptu. Dirname wraz z Readlink Narzędzie można użyć do określenia katalogu skryptu. Jednak po prostu używanie PWD polecenie nie działa, ponieważ daje tylko obecnie działający katalog.