Zrozumienie pobierania katalogu skryptu Bash
Podczas pracy ze skryptami Bash często konieczna jest znajomość katalogu, w którym znajduje się skrypt. Może to być przydatne do różnych zadań, takich jak ustawianie katalogu roboczego lub uzyskiwanie dostępu do plików w zależności od lokalizacji skryptu.
W tym przewodniku przyjrzymy się, jak pobrać ścieżkę katalogu skryptu Bash z poziomu samego skryptu. Takie podejście jest szczególnie przydatne, gdy chcesz, aby skrypt działał jako program uruchamiający inne aplikacje, zapewniając, że będzie działał na właściwych plikach.
| Komenda | Opis |
|---|---|
| readlink -f | Rozpoznaje pełną ścieżkę dowiązania symbolicznego, zapewniając bezwzględną ścieżkę skryptu Bash. |
| dirname | Wyodrębnia ścieżkę katalogu z podanej ścieżki pliku, służącą do określenia katalogu skryptu. |
| os.path.realpath(__file__) | Zwraca ścieżkę kanoniczną określonego pliku, rozwiązując wszelkie dowiązania symboliczne w Pythonie. |
| os.chdir() | Zmienia bieżący katalog roboczy na określoną ścieżkę w Pythonie. |
| abs_path($0) | Podaje bezwzględną ścieżkę skryptu wykonywanego w Perlu. |
| chdir() | Zmienia bieżący katalog roboczy na określoną ścieżkę w Perlu i PHP. |
| system() | Wykonuje zewnętrzne polecenie ze skryptu w Perlu. |
| exec() | Uruchamia zewnętrzny program z poziomu skryptu w PHP, zastępując bieżący proces. |
Szczegółowe wyjaśnienie skryptu
Dostarczone skrypty mają na celu określenie katalogu, w którym się znajdują i zmianę katalogu roboczego na tę ścieżkę. Jest to przydatne, gdy skrypt musi operować na plikach w swoim własnym katalogu lub uruchamiać inne aplikacje z tej lokalizacji. Na przykład w skrypcie Bash polecenie służy do uzyskania bezwzględnej ścieżki skryptu, oraz wyodrębnia katalog z tej ścieżki. A później polecenie zmienia bieżący katalog roboczy na katalog skryptu, zapewniając, że kolejne polecenia będą działać we właściwej lokalizacji.
W przykładzie Pythona pobiera bezwzględną ścieżkę skryptu i zmienia katalog roboczy. Używany jest skrypt Perla aby uzyskać bezwzględną ścieżkę skryptu i chdir() zmienić katalogi. Podobnie używa skrypt PHP aby znaleźć ścieżkę skryptu i aby zmienić katalog. Każdy skrypt kończy się poleceniem uruchomienia aplikacji, gwarantującym jej działanie w kontekście katalogu skryptu.
Określanie katalogu skryptu Bash
Przykład skryptu Basha
#!/bin/bash# Get the directory of the scriptSCRIPT_DIR=$(dirname "$(readlink -f "$0")")echo "The script is located in: $SCRIPT_DIR"# Change to the script's directorycd "$SCRIPT_DIR" || exit# Execute the application./application
Alternatywa dla Pythona do odzyskiwania katalogu skryptów
Przykład skryptu Pythona
#!/usr/bin/env python3import osimport sys# Get the directory of the scriptscript_dir = os.path.dirname(os.path.realpath(__file__))print(f"The script is located in: {script_dir}")# Change to the script's directoryos.chdir(script_dir)# Execute the applicationos.system('./application')
Skrypt Perla do określania katalogu skryptów
Przykład skryptu Perla
#!/usr/bin/env perluse Cwd 'abs_path';use File::Basename;# Get the directory of the script$script_dir = dirname(abs_path($0));print "The script is located in: $script_dir\n";# Change to the script's directorychdir $script_dir or die "Cannot change directory: $!";# Execute the applicationsystem('./application');
Skrypt PHP do lokalizacji jego katalogu
Przykład skryptu PHP
//php# Get the directory of the script$script_dir = dirname(realpath(__FILE__));echo "The script is located in: $script_dir\n";# Change to the script's directorychdir($script_dir);# Execute the applicationexec('./application');//
Alternatywne metody określania katalogu skryptów
Oprócz metod wspomnianych wcześniej istnieją inne techniki określania katalogu skryptu Bash. Jedną z takich metod jest użycie zmiennych środowiskowych. Na przykład zmienna zawiera ścieżkę pliku skryptu Bash, która może być przydatna w przypadku skryptów pochodzących z innych skryptów. Innym podejściem jest wykorzystanie argumentów wiersza poleceń. Analizując parametr, który zawiera nazwę wykonywanego skryptu, możesz określić lokalizację skryptu podczas wykonywania z różnych kontekstów, takich jak łącza symboliczne lub pliki źródłowe.
Te alternatywne metody mogą zapewnić elastyczność w zależności od kontekstu, w którym używany jest skrypt. Na przykład, gdy mamy do czynienia z dowiązaniami symbolicznymi, jest często konieczne do ustalenia prawdziwej ścieżki skryptu. Zrozumienie tych różnych technik gwarantuje, że skrypty będą solidne i można je dostosować do różnych środowisk wykonawczych, zwiększając ich użyteczność i niezawodność.
- Jak uzyskać katalog skryptu za pomocą ?
- Możesz użyć aby uzyskać katalog skryptu.
- Jaka jest różnica pomiędzy I ?
- to nazwa wykonywanego skryptu, podczas gdy zawiera pełną ścieżkę źródłowego skryptu.
- Mogę uzyć z dowiązaniami symbolicznymi?
- Tak, rozpoznaje pełną ścieżkę dowiązania symbolicznego.
- Co robi zrobić w Pythonie?
- zmienia bieżący katalog roboczy na określoną ścieżkę.
- Jak uzyskać bezwzględną ścieżkę skryptu w Perlu?
- Za pomocą z modułu Cwd podaje bezwzględną ścieżkę skryptu.
- Jakie polecenie jest używane w PHP do wykonania programu zewnętrznego?
- służy do uruchamiania zewnętrznego programu w PHP.
- Jak zmienić katalog w PHP?
- służy do zmiany bieżącego katalogu roboczego w PHP.
- Dlaczego jest przydatne w skryptach?
- wyodrębnia ścieżkę katalogu z podanej ścieżki pliku, pomagając zlokalizować katalog skryptu.
Określenie katalogu skryptu Bash jest kluczowym zadaniem w przypadku skryptów, które muszą działać na plikach lokalnych lub uruchamiać aplikacje. Używając poleceń takich jak , i wykorzystując zmienne środowiskowe, skrypty mogą dynamicznie dostosowywać swój katalog roboczy. Praktyka ta zapewnia poprawne działanie skryptu, niezależnie od tego, skąd jest wykonywany. Zrozumienie i wdrożenie tych metod zwiększa elastyczność i niezawodność skryptów, czyniąc je bardziej wydajnymi w różnych zastosowaniach i przypadkach użycia.