Вони еквівалентні в баші тим, що роблять абсолютно те саме. З іншого боку, sourceна 5 символів довше і не переноситься на оболонки POSIX або Bourne, тоді як .(крапка), тому я ніколи не заважаю користуватися source.
Це правильно - джерело файлу виконує команди в поточній оболонці, і це вплине на ваше поточне середовище оболонки. Ви все одно можете передавати аргументи до джерела, і bash насправді шукатиме $PATHім'я файлу так само, як і звичайна команда, якщо вона не містить косої риски.
Не пов’язано з початковим запитанням щодо .vs source, але у вашому прикладі,
. ./myScript.sh
не тотожне
source myScript.sh
адже поки .і sourceфункціонально однакові, myScript.shі ./myScript.shне є однаковими. Оскільки ./myScript.shмістить косу рису, вона інтерпретується як шлях, а оболонка просто використовує ./myScript.sh. Однак myScript.shне має нахилу, і оболонка $PATHспочатку шукає її. Це стандартна поведінка для визначеного POSIX. . Більшість оболонок за замовчуванням до цього, хоча вони можуть додавати розширення (наприклад, пошук у поточному робочому каталозі після пошуку шляху) або параметри зміни поведінки ./ source.