Відповіді:
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 виходять з ладу, наприклад, під запуском під золу.
#!/bin/sh
ви ніколи не повинні вважати, що оболонка підтримує будь-що, крім функцій POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…