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

Jak Znalezc Katalog W Ktorym Znajduje Sie Skrypt Bash Z Poziomu Skryptu



Podczas pracy ze skryptami basha pomocna jest znajomość lokalizacji skryptu. Może to być szczególnie przydatne podczas pracy ze względnymi ścieżkami plików lub podczas próby wykonania innych skryptów lub poleceń z poziomu skryptu. W tym artykule przyjrzymy się kilku różnym sposobom określania katalogu skryptu bash z poziomu samego skryptu.

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

Podczas pisania skryptów bash możesz potrzebować lokalizacji skryptu, aby zautomatyzować różne zadania. W systemie Linux istnieją dwa rodzaje ścieżek:

  • Ścieżka krewnych: Względny to bieżący katalog roboczy.
  • Ścieżka bezwzględna: To jest pełna ścieżka do katalogu i plików.

Jednym z najczęstszych sposobów określania lokalizacji skryptu bash jest użycie metody pwd Komenda. The pwd Komenda ( wydrukować katalog roboczy) pokaże bieżący katalog.







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



Na przykład, jeśli skrypt jest w Pliki do pobrania katalog i jest wykonywany z pliku Pulpit wtedy dane wyjściowe będą zawierać /home/usr/Pulpit nie jest to lokalizacja pliku skryptu bash /home/usr/Pobrane .



Ten samouczek dotyczy uzyskiwania ścieżki do katalogu, w którym znajduje się plik skryptu bash z poziomu skryptu.





Jak uzyskać ścieżkę do katalogu, w którym znajduje się plik skryptu Bash

Innym sposobem określenia katalogu skryptu Bash jest użycie pliku nazwa kierunkowa Komenda. The nazwa kierunkowa Polecenie przyjmuje ścieżkę pliku jako argument i zwraca katalogową część ścieżki.

Używać nazwa kierunkowa polecenie, aby określić katalog skryptu, wywołałbyś polecenie ze ścieżką do ostatnich nieukośnikowych składników skryptu jako argumentem.



Aby uzyskać więcej informacji na temat nazwa kierunkowa wykonaj następujące polecenia w terminalu:

$ Człowiek nazwa kierunkowa

Tylko nazwa kierunkowa nie zadziała, potrzebujemy innego polecenia przeczytaj łącze . The przeczytaj łącze polecenie print rozwiązało dowiązanie symboliczne. Uzyskaj więcej informacji o tym poleceniu, uruchamiając:

$ Człowiek przeczytaj łącze

Teraz, stworzyć skrypt :

$ Sudo nano myScript.sh

I wpisz:

#!/bin/bash

Echo „Ścieżka skryptu bash to $(dirname -- '$(readlink -f – '$0') ' ; ) ';

Aby uruchomić skrypt, użyj:

$ grzmotnąć myScript.sh

Zmieńmy katalog i zobaczmy, jaki jest wynik:

Notatka: W jednym przypadku powyższy skrypt nie zadziała, jeśli plik zostanie pobrany ze źródła zamiast wykonania, jak widać na poniższym wyjściu:

Wyjście jest /home/sam/Pulpit mając na uwadze, że plik skryptu znajduje się w /dom/sam informator.

Wniosek

Podsumowując, istnieje wiele sposobów określenia katalogu skryptu bash z poziomu samego skryptu. The nazwa kierunkowa wraz z przeczytaj łącze Narzędzie może być użyte do określenia katalogu skryptu. Jednak po prostu używając pwd polecenie nie działa, ponieważ podaje tylko aktualnie działający katalog.