Ответы:
sourceи .являются синонимами в Bash .
Если вы хотите убедиться, что команды являются просто синонимами и ничего более, посмотрите на исходный код , скажем, для версии 4.3, и изучите файл builtins/source.def. Вы увидите , что оба встроенных команд, sourceи .использовать ту же самую функцию: source_builtin.
.традиционная исходная команда, унаследованная от древней оболочки Борна. sourceэто просто встроенная команда bash, которая делает то же самое, что и ., предположительно, потому что она более читабельна ( .один может быть трудно обнаружить маленьким шрифтом). Вы увидите help sourceи help .показывает ту же информацию.
man bashа затем выполните поиск, sourceвы увидите, что source filename [arguments]это синоним . filename [arguments].
.является синонимом sourceв bash, но не в POSIX sh, так что вы должны использовать, .если ваш скрипт запускается / bin / sh. Обратите внимание, что bash утверждает, что работает как POSIX sh, когда вызывается как / bin / sh, но принимает sourceбез жалоб.
Такое поведение меня укусило, например, скрипты, протестированные с использованием bash, так как / bin / sh не работают при запуске под ash.
#!/bin/shвы никогда не должны предполагать, что оболочка поддерживает что-то кроме функций POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…