Попробуйте использовать man sh
или man bash
или справочную страницу для любой оболочки, которую вы используете. (Возможно man $SHELL
.)
Официально это называется не команда «точка», а source
команда. Поиск слова source
может быть полезным.
например, bash man page (поиск по "каждой встроенной команде"), и вы быстро найдете документацию.
Что касается объяснения использования, я могу сделать это прямо здесь. Я просто буду называть это source
командой, признавая, что ее можно сокращать до периода, когда вы используете некоторые оболочки, и с некоторыми оболочками эта команда может потребоваться (потому что точка может быть распознана, но все слово source
может не быть).
Если вы используете source
команду, ваша оболочка прочитает каждую строку из файла сценария и попытается выполнить ее. Вам нужно разрешение на чтение файла. (Неважно, есть ли у вас разрешения на «выполнение».) Если вы изменяете переменную, это может повлиять на вашу текущую оболочку.
Если, с другой стороны, вы просто пытаетесь выполнить файл, то ваша оболочка попросит операционную систему выполнить этот запрос. Это потребует разрешения «выполнить». (В некоторых системах, таких как OpenBSD, для этого вам не понадобятся разрешения на «чтение». В других системах, включая многие варианты Unix, вам это понадобится.) Возможно, файл должен начинаться с соответствующего заголовка (например, #!/bin/sh
), чтобы рабочая Система распознает это как файл сценария. Операционная система выполнит копию запрошенной оболочки и скажет этой оболочке запустить содержимое скрипта. Если среда оболочки изменяется (например, переменная получает новое значение, рабочий каталог изменяется (с помощью cd
), дескриптор файла перенаправляется (с помощью exec
) и т. д.), это повлияет только на вложенную оболочку, которая была вызвана для сценария, и не может изменить среду в родительской оболочке, которая вызывала файл сценария.