Поиск по сайту:
Простота только мешает поиску недостижимого. Если существуют афоризмы, должны быть и метаафоризмы. (Алан.Дж.Перлис)

Как и когда использовать команду Dot в Bash?

04.08.2023
Как и когда использовать команду Dot в Bash?

Во-первых, команду Dot (.) не следует путать с точкой перед названием файла или обозначением относительного пути. Например, папка ~/.ssh является скрытой папкой, использующей обозначение файла dot, которое вам нужно будет использовать ls -a для просмотра этой папки. И ./my-script.sh — это относительный путь к скрипту с именем “my-script.sh” в текущей папке. Использование команды Dot было бы таким: . myscript.sh.

Команда Dot (.), она же полная остановка или точка, — это команда, используемая для оценки команд в текущем контексте выполнения. В Bash source команда является синонимом команды dot (.), и вы также можете передавать параметры команде, будьте осторожны, это отклоняется от спецификации POSIX.

.: . filename [arguments]
    Execute commands from a file in the current shell.
    
    Read and execute commands from FILENAME in the current shell.  The
    entries in $PATH are used to find the directory containing FILENAME.
    If any ARGUMENTS are supplied, they become the positional parameters
    when FILENAME is executed.
    
    Exit Status:
    Returns the status of the last command executed in FILENAME; fails if
    FILENAME cannot be read.

 

👉 Если вы не укажете точный путь к имени файла, Bash будет использовать $PATH в поиске файла для оценки.

 

Как использовать команду Dot в Bash?

Когда вы запускаете исполняемый скрипт как ./my-script.sh, команды выполняются в новой подоболочке, в то время как при запуске как . my-script.sh будет использоваться текущий контекст оболочки. Как правило, вашим текущим контекстом является окно вашего терминала. Это означает, что команда dot применит изменения к вашей текущей командной строке. Давайте рассмотрим простой пример ниже.

#!/usr/bin/env bash
export A="hello world"
echo $A

 

Читать  Как установить приложение Blizzard Battle.net на Ubuntu

При запуске от имени исполняемого файла с помощью ./my-script.sh, переменная A не экспортируется в вашу текущую оболочку и просто возвращает пустой результат.

$ ./test.sh 
hello world
$ echo $A

 

При запуске того же скрипта с командой dot с помощью . my-script.sh, ваш текущий контекст оболочки будет изменен.

$ . test.sh 
hello world
$ echo $A
hello world

Когда использовать команду Dot в Bash?

Наиболее очевидный вариант использования команды dot — это когда вы хотите изменить свой текущий контекст, установив новые переменные или изменив некоторые существующие. У вас также может быть скрипт, который рассчитывает изменить ваш текущий каталог с помощью cd. Это также может быть удобно при попытке запустить скрипт, у которого нет разрешения execute (x).

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Galax объявила о выпуске памяти HOF OC LAB Phantom S…

Спасибо!

Теперь редакторы в курсе.