Ответ 1
Нет никакой разницы.
Из manual:
source
source filename A synonym for . (see Bourne Shell Builtins).
Возьмем небольшой пример:
$ cat source.sh
#!/bin/bash
echo "I'm file source-1"
. source-2.sh
и
$ cat source-2.sh
#!/bin/bash
echo "I'm file source-2"
Теперь запустите:
$ ./source.sh
I'm file source-1
I'm file source-2
Если сначала сменить вызов второго файла:
$ cat source.sh
#!/bin/bash
echo "I'm file source-1"
source source-2.sh
Он будет иметь такое же влияние, как использование dot
.
Итак - в чем его отличие? Спасибо.
Нет никакой разницы.
Из manual:
source
source filename A synonym for . (see Bourne Shell Builtins).
Единственная разница в переносимости. .
- это стандартная команда POSIX для выполнения команд из файла; source
- это более читаемый синоним, предоставляемый bash
и некоторыми другими оболочками. bash
сам, однако, не делает различий между ними.