Czy istnieje sposób na włączenie innego skryptu powłoki do skryptu powłoki, aby mieć dostęp do jego funkcji?
Podobnie jak w PHP, możesz użyć include
dyrektywy z innymi plikami PHP, aby uruchomić zawarte w nich funkcje, po prostu wywołując nazwę funkcji.
source
polecenia, pytanie samo w sobie polega na pytaniu, jak wskazać lokalizacjęsource
pliku.Odpowiedzi:
Po prostu umieść w swoim skrypcie:
Lub
źródło
C
języku. Tutaj źródło wykonuje skrypt potomny w skrypcie głównym. A co jeśli chcę tylko wywołać określoną funkcję ze skryptu potomnego?. script.sh
z./script.sh
. Straciłem godziny, próbując dowiedzieć się, co się dziejePowyższe odpowiedzi są poprawne, ale jeśli uruchomisz skrypt w innym folderze, wystąpi problem.
Na przykład,
a.sh
ib.sh
są w tym samym folderze, a include b with. ./b.sh
to include.Po uruchomieniu skryptu z folderu, na przykład
xx/xx/xx/a.sh
, plikb.sh
nie znaleziono:./b.sh: No such file or directory
.używam
źródło
Tak, użyj źródła lub krótkiej formy, która jest po prostu
.
:źródło
.
wersja działash
równie dobrze jak Bash. „Źródłowy” działa tylko w Bash.W mojej sytuacji, aby dołączyć
color.sh
z tego samego kataloguinit.sh
, musiałem zrobić coś w następujący sposób.Nie wiem, dlaczego
./
i niecolor.sh
bezpośrednio. Treśćcolor.sh
jest następująca.Korzystanie z
File color.sh
nie powoduje błędu, ale kolor nie jest wyświetlany. Przetestowałem to w programie,Ubuntu 18.04
aBash
wersja to:GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
źródło
init.sh
znajduje (pokrywają się, jeśli uruchomiłeś go./init.sh
w pierwszej kolejności).Składnia to
source <file-name>
dawny.
source config.sh
skrypt - config.sh
skrypt wywołujący -
Możesz nauczyć się dołączać skrypt bash do innego skryptu bash tutaj .
źródło