В оболонці Unix крапка під назвою dot command (.) — це команда, яка оцінює команди в комп’ютерному файлі в поточному контексті виконання.
Команду dot не слід плутати з dot файлом, який є прихованим файлом або прихованим каталогом. Його також не слід плутати з нотацією ./scriptfile для виконання команд, яка є просто відносним шляхом, що вказує на поточний каталог (позначений в Unix як символ ".", і зазвичай за межами змінної Path).
Ім'я файлу є першим аргументом команди dot. Якщо цей аргумент не містить косої риски, оболонка шукатиме файл у всіх каталогах, визначених у змінній середовища PATH. На відміну від звичайних команд, які також містяться в PATH, файл для вихідного коду не обов'язково має бути виконуваним. В іншому випадку ім’я файлу розглядається як простий шлях до файлу.
У кількох «розширених» оболонках, включаючи bash, zsh і ksh, можна вказати параметри у другому аргументі. Якщо параметри не вказано, вихідний файл отримає набір позиційних параметрів, доступних у поточному контексті.
Оскільки виконання вихідного файлу виконується в контексті виклику, середовище, змінене в межах, застосовується до поточного процесу або поточної оболонки. Це дуже відрізняється від скриптів, які запускаються безпосередньо shebang або як sh foo.sh
, які запускаються в новому окремому просторі процесу з окремим середовищем.
Таким чином, команду dot можна використовувати для розбиття великого скрипту на менші частини, що потенційно дозволяє створити модульний дизайн. Вибір джерел також часто виконується оболонкою під час запуску сеансу для файлів профілів користувача, таких як .bashrc
і .profile
.
source
— це вбудована в оболонку команда, яка оцінює файл після команди як список команд, що виконуються в поточному контексті. Часто "поточний контекст" - це вікно терміналу, в яке користувач вводить команди під час інтерактивного сеансу.
Команду source можна скоротити як крапку (.
) у Bash та подібних оболонках POSIX. Однак це неприйнятно в оболонці C, де вперше з’явилася команда.
Деякі скрипти Bash слід запускати з використанням: source your-script
, а не як виконувану команду, наприклад, якщо вони містять команду зміни каталогу (cd) і користувач має намір залишити їх у цьому каталозі після завершення скрипту, або вони містять команду експорту, і користувач хоче змінити середовище поточної оболонки. Інша ситуація використання – це коли файл не має дозволу на виконання. Передача імені файлу до потрібної оболонки запустить скрипт у subshell, а не в поточному контексті.