Natknąłem się na ten przykład, gdy próbowałem zamontować urządzenie USB w kontenerze openvz i nigdy wcześniej nie widziałem konstrukcji w drugiej linii. Czy możesz wyjaśnić, co to znaczy?
#!/bin/bash
. /etc/vz/vz.conf
źródło
Natknąłem się na ten przykład, gdy próbowałem zamontować urządzenie USB w kontenerze openvz i nigdy wcześniej nie widziałem konstrukcji w drugiej linii. Czy możesz wyjaśnić, co to znaczy?
#!/bin/bash
. /etc/vz/vz.conf
To synonim wbudowanego source
. Będzie wykonywać polecenia z pliku w bieżącej powłoce , zgodnie z odczytem z help source
lub help .
.
W twoim przypadku plik /etc/vz/vz.conf
zostanie wykonany (najprawdopodobniej zawiera tylko przypisania zmiennych, które zostaną wykorzystane później w skrypcie). Różni się od zwykłego wykonywania pliku np. Na /etc/vz/vz.conf
wiele sposobów: najbardziej oczywistym jest to, że plik nie musi być wykonywalny; wtedy pomyślisz o uruchomieniu go, bash /etc/vz/vz.conf
ale spowoduje to wykonanie go tylko w procesie potomnym, a skrypt nadrzędny nie zobaczy żadnych modyfikacji (np. zmiennych) dokonanych przez dziecko.
Przykład:
$ # Create a file testfile that contains a variable assignment:
$ echo "a=hello" > testfile
$ # Check that the variable expands to nothing:
$ echo "$a"
$ # Good. Now execute the file testfile with bash
$ bash testfile
$ # Check that the variable a still expands to nothing:
$ echo "$a"
$ # Now _source_ the file testfile:
$ . testfile
$ # Now check the value of the variable a:
$ echo "$a"
hello
$
Mam nadzieję że to pomoże.
.
działa w większości powłok (sh, ash, ksh itp.),source
Jest specyficzny dla bash.source
to nie tylko bash - to także powłoki w stylu C (csh
,tcsh
) - i zsh..
działa w muszlach typu Bourne'a, w tym tych wymienionych . Biorąc pod uwagę, że bash jest powłoką w stylu Bourne'a i prawie żaden skrypt bash o nieskrywalnej złożoności prawdopodobnie będzie działał w powłoce w stylu C, to prawda.
powinna być uważana za znacznie bardziej przenośną. Alesource
synonim bash.
istnieje częściowo dla przenośności..
jest uniwersalnie przenośny isource
jest szeroko rozpowszechniony, ale nie działa w prosty sposóbsh
.Składnia nazwa pliku [argumenty]
źródło