Android

Komenda źródła Bash

Source Shell Script vs Executing Shell Script - The Real Difference

Source Shell Script vs Executing Shell Script - The Real Difference

Spisu treści:

Anonim

Polecenie source odczytuje i wykonuje polecenia z pliku określonego jako argument w bieżącym środowisku powłoki. Przydatne jest ładowanie funkcji, zmiennych i plików konfiguracyjnych do skryptów powłoki.

source jest powłoką wbudowaną w Bash i inne popularne powłoki używane w systemach operacyjnych Linux i UNIX. Jego zachowanie może nieznacznie różnić się w zależności od powłoki.

Składnia polecenia źródłowego

Składnia polecenia source jest następująca:

source FILENAME. FILENAME

  • source i . (kropka) to to samo polecenie. Jeśli FILENAME nie jest pełną ścieżką do pliku, polecenie wyszuka plik w katalogach określonych w zmiennej środowiskowej $PATH . Jeśli plik nie zostanie znaleziony w $PATH polecenie wyszuka plik w bieżącym katalogu. Jeśli podane zostaną ARGUMENTS , staną się parametrami pozycyjnymi dla FILENAME PLIKU. Jeśli NAZWA FILENAME istnieje, kod wyjścia komendy źródłowej wynosi 0 , w przeciwnym razie jeśli plik nie zostanie znaleziony, zwróci 1 .

Przykłady poleceń źródłowych

W tej sekcji przyjrzymy się kilku podstawowym przykładom używania polecenia source .

Funkcje pozyskiwania

W tym przykładzie utworzymy plik, który zawiera funkcję bash, która sprawdza, czy użytkownik uruchamiający skrypt jest rootem, a jeśli nie, wyświetla komunikat i kończy skrypt.

functions.sh

check_root () { if]; then echo "This script must be run as root" exit 1 fi }

Teraz w każdym ze skryptów, które muszą być uruchamiane tylko przez użytkownika root, po prostu pobierz plik functions.sh i wywołaj funkcję:

#!/usr/bin/env bash source functions.sh check_root echo "I am root"

Zaletą tego podejścia jest to, że twoje skrypty będą mniejsze i bardziej czytelne, możesz ponownie użyć tego samego pliku funkcji, gdy zajdzie taka potrzeba, aw przypadku potrzeby modyfikacji funkcji będziesz edytować tylko jeden plik.

Plik konfiguracyjny Bash

Za pomocą polecenia source możesz także odczytywać zmienne z pliku. Zmienne należy ustawić przy użyciu składni Bash, VARIABLE=VALUE .

Utwórzmy testowy plik konfiguracyjny:

config.sh

VAR1="foo" VAR2="bar"

W skrypcie bash użyj polecenia source aby odczytać plik konfiguracyjny:

#!/usr/bin/env bash source config.sh echo "VAR1 is $VAR1" echo "VAR2 is $VAR2"

VAR1 is foo VAR2 is bar

Wniosek

W tym przewodniku nauczyłeś się korzystać z wbudowanego polecenia source w skryptach powłoki.

terminal bash