Из Википедии, свободной энциклопедии
  (Перенаправлено из источника (команда) )
Перейти к навигации Перейти к поиску

В Unix оболочки , то полная остановка называется точка команды ( . ) Является команда , которая Оценивает команды в компьютерном файле в текущем контексте выполнения. [1] В C Shell такая же функциональность предоставляется как sourceкоманда, [2], и это имя также встречается в «расширенных» оболочках POSIX. [3] [4]

Команду с точкой не следует путать с файлом с точкой , который представляет собой скрытый файл с префиксом точки или скрытый каталог . Не следует также путать его с ./scriptfileобозначением для выполняемых команд, которое представляет собой просто относительный путь, указывающий на текущий каталог (обозначенный в Unix как символ '.' И обычно за пределами переменной Path ).

Аргументы [ править ]

Имя файла - это первый аргумент команды с точкой . Если этот аргумент не содержит косой черты , оболочка будет искать файл во всех каталогах, определенных в переменной среды PATH . В отличие от обычных команд, которые также можно найти в PATH, исходный файл не обязательно должен быть исполняемым . В противном случае имя файла рассматривается как простой путь к файлу. [1]

В нескольких «расширенных» оболочках, включая bash, [3] zsh [4] и ksh, [5], можно указать параметры во втором аргументе. Если параметры не указаны, исходный файл получит набор позиционных параметров, доступных в текущем контексте. Если параметры указаны, исходный файл получит только указанные параметры. В любом случае параметром $0будет $0текущий контекст.

Использование [ править ]

Поскольку выполнение исходного файла выполняется в вызывающем контексте, измененная среда [примечание 1] применяется к текущему процессу или текущей оболочке. Это сильно отличается от сценариев, запускаемых непосредственно shebang или as sh foo.sh, которые выполняются в новом, отдельном пространстве процесса , с отдельной средой.

Таким образом, команду точки можно использовать для разделения большого скрипта на более мелкие части, что потенциально позволяет создать модульную конструкцию. Источники также часто выполняются оболочкой при запуске сеанса для файлов профиля пользователя, таких как .bashrcи .profile.

Источник [ править ]

source- это встроенная в оболочку команда, которая оценивает файл, следующий за командой, как список команд, выполняемых в текущем контексте. [6] Часто «текущий контекст» - это окно терминала, в котором пользователь вводит команды во время интерактивного сеанса.

Исходную команду можно сократить до точки ( .) в Bash и аналогичных оболочках POSIX. Однако это неприемлемо в оболочке C , где эта команда появилась впервые.

Некоторые сценарии Bash следует запускать с использованием source your-scriptсинтаксиса, а не как исполняемую команду, например, если они содержат команду change directory ( cd) и пользователь намеревается оставить их в этом каталоге после завершения сценария, или они содержат экспорт команда, и пользователь хочет изменить среду текущей оболочки. Другая ситуация использования - это когда файл сценария не имеет разрешения на «выполнение» . Передача имени файла сценария в желаемую оболочку запустит сценарий в подоболочке , а не в текущем контексте.

Заметки [ править ]

  1. ^ См. Среда выполнения оболочки в POSIX.1: 2013.

Ссылки [ править ]

  1. ^ a b «POSIX.1: 2013 Shell Command Language § точка» . Дата обращения 23 мая 2016 .
  2. ^ "Csh man page # команда" . Дата обращения 23 мая 2016 .
  3. ^ a b «Справочное руководство Bash § Встроенные оболочки Bourne» . Дата обращения 23 мая 2016 .
  4. ^ a b «Встроенные команды оболочки ZSH» . Дата обращения 23 мая 2016 .
  5. ^ "Справочная страница ksh" . Oracle . Дата обращения 23 мая 2016 . +. имя [аргумент ...]
  6. ^ "BASH BUILTIN COMMANDS", справочная страница (GNU) Linux для "исходного кода" в Bash-3.0. 20 апреля 2004 г.

Внешние ссылки [ править ]

  • Объяснение трех различных вариантов использования точки в Unix