В оболочке Linux я видел команду, начинающуюся с "./", например

$ ./example

Но тогда я также видел подобную команду, как $. example.sh

У меня вопрос, они имеют одинаковую функцию?

2 ответа2

1

./example.sh выполнит example.sh в текущем каталоге.

. example.sh будет источником example.sh .

1

Хотя они могут выглядеть одинаково, обе команды не связаны между собой.

./example

выполнит двоичный или исполняемый скрипт оболочки в текущей папке. Если это сценарий оболочки, он будет выполняться в вложенной оболочке.


. example

идентично

source example

который будет "источником" файла, что означает его выполнение в контексте текущей оболочки. Это означает, что если в этом файле есть объявления переменных или функций, они будут доступны в текущей оболочке после source команды. Также переменные манипуляции или что-то будет происходить в текущей оболочке. Это как если бы вы печатали содержимое файла построчно вручную в терминале.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .