Spróbuj użyć man sh
lub man bash
lub strony podręcznika dla dowolnej powłoki, której używasz. (Może man $SHELL
.)
Oficjalnie nie jest to nazywane poleceniem „punktowym”, lecz source
poleceniem. Wyszukiwanie słowa source
może być pomocne.
np. strona podręcznika bash (wyszukaj „każde wbudowane polecenie”), a szybko znajdziesz dokumentację.
Jeśli chodzi o wyjaśnienie zastosowania, mogę to zrobić tutaj. Odniosę się do tego jako do source
polecenia, uznając, że można go skrócić do okresu, w którym używasz niektórych powłok, a dla niektórych powłok może to być konieczne (ponieważ kropka może być rozpoznana, ale całe słowo source
może nie być być).
Jeśli użyjesz source
polecenia, twoja powłoka odczyta każdy wiersz z pliku skryptu i spróbuje go wykonać. Potrzebujesz uprawnień do odczytu pliku. (Nie ma znaczenia, czy masz uprawnienia do „wykonywania”). Jeśli zmienisz zmienną, będzie to miało wpływ na bieżącą powłokę.
Jeśli, z drugiej strony, po prostu spróbujesz uruchomić plik, wtedy twoja powłoka poprosi system operacyjny o zajęcie się tym żądaniem. Będzie to wymagało uprawnień do „wykonania”. (W niektórych systemach, takich jak OpenBSD, nie potrzebujesz do tego uprawnień „do odczytu”. W innych systemach, w tym w wielu odmianach Uniksa, będziesz musiał.) Plik może wymagać uruchomienia odpowiedniego nagłówka (np. #!/bin/sh
), Aby operacja system rozpoznaje to jako plik skryptu. System operacyjny wykona kopię żądanej powłoki i powie tej powłoce, aby uruchomiła zawartość skryptu. Jeśli środowisko powłoki zostanie zmienione (np. Zmienna otrzyma nową wartość, katalog roboczy zostanie zmieniony (za pomocą cd
), deskryptor pliku zostanie przekierowany (za pomocą exec
) itp.), wpłynie tylko na podpowłokę, która została wywołana dla skryptu, i nie może modyfikować środowiska w powłoce nadrzędnej, która wywołała plik skryptu.