Что я подразумеваю под тем, что, например, мы хотим просто открыть терминал и ввести ключевое слово, и функция в программе выполняется.
Ваша программа не должна "постоянно"выполнить "для того, чтобы вы могли вызывать его без указания пути ... вам просто нужно убедиться, что программа находится в одном из каталогов в вашем PATH, или, наоборот, что ваша переменная среды PATH включает в себя каталоггде находится ваша программа.
Итак, допустим, вы хотите скомпилировать hello.c
в команду с именем hello
.Вот код:
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
Таким образом, вы скомпилируете это так:
> gcc -o hello hello.c
Теперь у вас должен быть исполняемый файл с именем hello
в вашем текущем каталоге, и вы можете запуститьэто как:
> ./hello
Но вы просто хотите набрать hello
где угодно, верно?Таким образом, вы можете добавить текущий каталог в переменную среды PATH, например:
> export PATH=$PATH:$PWD
, которая добавляет значение PWD
, переменной среды, содержащей текущий каталог, в PATH
, чтопеременная среды, которая содержит список каталогов, в которых оболочка будет искать исполняемые программы.
Если вы хотите сделать это изменение постоянным, вам нужно будет изменить один из сценариев, который запускается при запуске любогооболочка, которую вы используете.Это немного выходит за рамки этого ответа, и есть много советов о том, как настроить свой PATH в сети, поэтому я оставлю это вам.
Другой вариант, вместо добавления каталога, содержащего hello
в ваш PATH, это переместить hello
в один из каталогов, уже перечисленных в PATH.Вы можете увидеть полный список, выполнив следующее:
> echo $PATH
Вы не сказали, какую ОС вы используете, но если это что-то, похожее на Unix, там, вероятно, указан /usr/local/bin
.Каталоги .../bin
обычно содержат исполняемые программы, а /usr/local
- это поддерево каталогов, куда входят локальные дополнения к ОС.Таким образом, вы можете поместить вашу программу в /usr/local/bin
, а затем (при условии, что /usr/local/bin
находится в вашем PATH), hello
всегда будет доступно.