$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Istnieje i można go uruchomić. Dlaczego w Ubuntu nie ma dokumentacji na ten temat? Co to robi? Jak mogę zainstalować dokumentację na ten temat?
bash
shell
documentation
Andrea Ambu
źródło
źródło
$ type source
source is a shell built-in
$ whatis source
source (1) - bash built-in commands, see bash(1)
. Ponadto,man source
zabiera mnie doBASH_BUILTINS(1)
stron podręcznika. Dzieje się tak na Fedorze, nie mam pojęcia, dlaczego te pakiety Debiana są nieudokumentowane (lub źle).Odpowiedzi:
source
to wbudowane polecenie powłoki bash, które wykonuje zawartość pliku przekazanego jako argument w bieżącej powłoce . Ma synonim w.
(kropka).źródło
source
to polecenie specyficzne dla basha, czy też inne powłoki go mają? (Proszę o dokładnesource
był obecny w skorupie Bourne'a, a zatem prawdopodobnie był obecny u wszystkich jego potomków. en.wikipedia.org/wiki/Bourne_shell . Wiem, że nie wszystkie powłoki mająsource
polecenie, mniej pewni, które powłoki je zawierają.source
nie był obecny w powłoce Bourne'a, jest to rozszerzenie GNU, które pojawiło się znacznie później. Oryginalna i wciąż przenośna składnia (POSIX) polega na użyciu polecenia „kropka”, tzn.
. Zamiast tego. Osobiście nigdy nie używam,source
biorąc pod uwagę fakt, że jest on dłuższy i nie ma wartości dodanej. Myślę, że jego głównym celem jest uczynienie skryptów bardziej czytelnymi dla początkujących.source
nie tylko bardziej opisowe, ale wygląda na coś innego niż literówkę. Ludzie pomijają kropkę / kropkę, gdy wysyłam polecenia techniczne pocztą e-mail.source
w „pliku konfiguracyjnym”, który zawiera głównie przypisania zmiennych. Przypisania zmiennych kontrolują następnie czynności wykonywane przez resztę skryptu. Oczywiście dobry skrypt ustawi zmienne na rozsądne wartości domyślne przedsource
, lub przynajmniej sprawdzi poprawne wartości.Bądź ostrożny!
./
i niesource
są całkiem takie same ../script
uruchamia skrypt jako plik wykonywalny, uruchamiając nową powłokę, aby go uruchomićsource script
odczytuje i wykonuje polecenia z nazwy pliku w bieżącym środowisku powłokiUwaga:
./script
nie jest. script
, ale. script
==source script
https://askubuntu.com/questions/182012/is-there-a-difference-between-and-source-in-bash-after-all?lq=1
źródło
./ == source == .
Warto znać polecenie „typ”:
kiedy tylko coś jest wbudowane w powłokę, czas to zrobić
man bash
.źródło
man
)help {builtin-name}
, tjhelp source
.help
nie działa wszędzie (przynajmniej w Zsh).type
robi.. (kropka) to wbudowane polecenie powłoki bash, które wykonuje polecenia z pliku przekazanego jako argument w bieżącej powłoce. „źródło” jest synonimem „.”.
Ze strony podręcznika użytkownika Bash:
źródło
„source” to długa wersja „”. Komenda. W wierszu poleceń bash można wykonać:
aby ponownie załadować (zmienione?) ustawienie bash dla aktualnie uruchomionego basha.
Krótka wersja to:
Strona podręcznika:
źródło
source
polecenie wykonuje podany skrypt (uprawnienie do wykonywania nie jest obowiązkowe ) w bieżącym środowisku powłoki, natomiast./
wykonuje podany skrypt wykonywalny w nowej powłoce.source
polecenie mają synonim. filename
.Aby to wyjaśnić, spójrz na poniższy skrypt, który ustawia alias.
make_alias
Teraz mamy dwie możliwości wykonania tego skryptu. Ale tylko z jedną opcją można utworzyć pożądany alias dla bieżącej powłoki wśród tych dwóch opcji.
Opcja 1:
./make_alias
Najpierw wykonaj skrypt.
Wykonać
Zweryfikować
Wynik
Ups! Alias zniknął z nową powłoką.
Przejdźmy do drugiej opcji.
Opcja 2:
source make_alias
Wykonać
lub
Zweryfikować
Wynik
Tak, Alias jest ustawiony.
źródło
W razie wątpliwości najlepiej jest użyć
info
polecenia:źródło
Wpisz polecenie „źródło pomocy” w swojej powłoce.
Otrzymasz dane wyjściowe w następujący sposób:
źródło
Z projektu dokumentacji Linux, Advanced Bash Scripting Guide,
Rozdział 15 - Wewnętrzne polecenia i wbudowane :
Zatem dla osób zaznajomionych z językiem programowania C pozyskiwanie pliku ma efekt podobny do
#include
dyrektywy.Zauważ również, że możesz przekazać argumenty pozycyjne do pozyskiwanego pliku, takie jak:
źródło
source
można wziąć argumenty lub użyćreturn
.Należy zauważyć, że mimo iż jest to niesamowite poleceń, ani
source
ani skróconej od.
by pozyskać więcej niż jeden plik, znaczenialub
będzie nie działać.
Możemy wycofać się za pomocą
for
pętli, ale wydałoby to plik wykonywalny wiele razy, tworząc wiele poleceń lub problem.Wniosek:
source
nie przyjmuje wielu plików jako danych wejściowych. Argument musi być jeden.Co do bani IMHO.
źródło
Za pomocą źródła możesz przekazywać zmienne lub funkcje z innego pliku do skryptu i używać ich bez konieczności ponownego ich zapisywania.
FI:
Twoje zdrowie
źródło