Muszę znaleźć pomoc dla polecenia punktowego, .
takiego jak w . ./my_script.sh
(mam na myśli pierwszy punkt).
Próbowałem już znaleźć stronę podręcznika przy użyciu man .
i man \.
. Jak wyświetlić stronę podręcznika, na której wyjaśnia użycie polecenia .
?
help .
dot
. Zobacz oficjalną specyfikację na pubs.opengroup.org/onlinepubs/009696699/utilities/dot.html.
to polecenie, zwłaszcza wbudowana powłoka. W Bash jest to równoważne zsource
..
to POSIX, a nie tylko bash. Np. Jest także w Zsh i Ksh.Odpowiedzi:
Przede wszystkim powinieneś wywołać
type .
, prawdopodobnie dostaniesz coś takiego:Wbudowane są częścią twojej powłoki, nie mają własnych stron podręcznika. Niektóre z nich mogą się wydawać, że je mają, np.
echo
Są wbudowane w Bash, ale najprawdopodobniej istnieje osobny plik wykonywalny, taki jak/bin/echo
w twoim systemie, w tym przypadkuman echo
odnosi się do tego drugiego . Te dwaecho
prawdopodobnie nie są ściśle równoważne.Twoja powłoka może dostarczać informacje o każdym wbudowanym za pomocą
help
wbudowanego; spróbowaćhelp help
,help type
a na końcu:Wbudowane mogą być również wymienione na stronie podręcznika powłoki. Np. (W moim Debianie) wbudowane Bash są objęte bezpośrednio
man bash
, ale dla wbudowanych Zshman zsh
każe mi działaćman zshbuiltins
. Ogólnie rzecz biorąc, powłoki mogą, ale nie muszą, wyjaśniać swoje wbudowane funkcje.źródło
.
jest wbudowane w powłokę i powinno to być oznaczone jako odpowiedź, ponieważ OP pytahow to find help for . in *nix ?
.type .
celu wykazania, że niektóre polecenia są wbudowanymi powłokami.bash-builtins(1)
podręcznika, która ma wygodniejszy rozmiar.. --help
działaSpróbuj użyć
man sh
lubman bash
lub strony podręcznika dla dowolnej powłoki, której używasz. (Możeman $SHELL
.)Oficjalnie nie jest to nazywane poleceniem „punktowym”, lecz
source
poleceniem. Wyszukiwanie słowasource
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łowosource
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.źródło
source
uderzenie. W specyfikacji POSIX nazywa się to „poleceniem kropkowym” (asource
alias nie jest obsługiwany).man bash
a potem co/.
? Niezbyt przydatne./source
przydałby się, ale musisz to wiedzieć.
isource
to samo..
i może byćsource
, ale jak już wspomniano @CharlesDuffy, zawsze znajduje się.
w dowolnej powłoce zgodnej z POSIX i ma tylko aliassource
w jedna skorupa.Nikt inny nie wspomniał o tym, ponieważ często się o nim zapomina.
Twoja największa wskazówka pochodziłaby z pomocnego polecenia
whatis
.EDYTOWAĆ:
Niektórzy zauważyli w komentarzach, że to nie jest w niektórych rozkojarzeniach - może to jest pakiet do zainstalowania, lub w jakiś sposób włączyli - mam go domyślnie w Gentoo;)
Zawiera wspaniałe, które - które mówi ci, który plik wykonywalny jest nazywany, i whereis, który daje ci wszystkie ścieżki do pliku wykonywalnego, który ty nazywasz, a także strony podręcznika (jeśli istnieje w wielu ścieżkach).
źródło
whatis .
zwracaman: 0703-307 . is not found.
whatis .
nic nie zwraca na Ubuntu 16.04whatis .
” dał ”.: nothing appropriate.
w OpenBSD, spowodowało to 47 wierszy wyników. W tym konkretnym przykładzie (użycie „whatis .
” w Gentoo) wyniki mogą być po prostu wyjątkowo dobre (co oznacza, że ta technika nie jest ogólnie tak przydatna w wielu innych przykładowych scenariuszach).man source
pokaże potrzebne wyjaśnienie.Kropka jest taka sama jak polecenie źródłowe.
source
wykonuje skrypt w bieżącej powłoce zamiast w podpowłoce (jest to zwykły sposób).Korzystanie
source
ze zmiennych ustawionych w skrypcie jest zachowywane po zakończeniu skryptu.źródło
man source
działa? Nie w moim Debianie, stąd pytanie.source
upstream - jest to bardziej prawdopodobne, że zrobił to CentOS.man source
daje ciman bash_builtins
, co niczego nie wyjaśnia, ale odnosi się dobash(1)
man source
daje misource(3tcl)
...type command
a następnie, jeśli polecenie jest wbudowane,help command
to prawdopodobnie właściwy sposób ....
Jest synonimem powłokisource
polecenia i tak w bash , jego składnia jest wyświetlany ...Działa dokładnie tak samo jak polecenia
include
iimport
w innych językach, ponieważ odczytuje plik docelowy i interpretuje go tak, jakby był częścią bieżącego skryptu. Tak więc plik ten zostanie wykonany w całości przed poleceniami w pozostałej części bieżącego skryptu.Zwykle powinien znajdować się na początku bieżącego skryptu i jest najczęściej używany do ładowania zmiennych i / lub definicji funkcji.
źródło