2

Я только что установил новую программу (назовем ее foo) на моей машине с Linux. Файлы программы находятся в необычном месте, которое в настоящее время не является частью моего $PATH . Если я хотел бы иметь возможность легко запускать эту программу из терминала, находясь в любом каталоге, лучше ли изменить мою переменную $ PATH или создать псевдоним? Это имеет значение?

Например, метод псевдонима будет добавить это: alias foo = "/path/to/program/foo.sh"

И метод $ PATH будет следующим: export PATH =/path/to/program; $ PATH

Что лучше и почему?

3 ответа3

2

"Лучше" - это несколько туманный термин, но я бы порекомендовал добавить каталог программы в $PATH , потому что (в отличие от псевдонимов) он будет наследоваться подпроцессами вашей оболочки.

Например, если вы запускаете редактор из своей оболочки, а затем хотите запустить foo.sh из редактора, как, например, для компиляции редактируемого файла или преобразования его текста, тогда редактор будет знать, где найти foo. ш; если вместо этого вы добавите псевдоним, вам нужно будет указать полный путь к foo.sh при запуске из редактора.

2

Есть третий вариант. Создайте ссылку из одной из директорий в $ PATH на программу. Для этой цели может быть выделен новый каталог (для ссылки на программы в нестандартных местах). Таким образом, PATH не будет загрязнен, если в будущем будет добавлено больше подобных программ, а также, как упоминает Аарон, это не будет зависеть от псевдонима, в котором псевдоним недоступен.

1

Абсолютный путь (здесь ваш псевдоним) все быстрее и быстрее, чем заданная PATH .

Потому что, когда вы устанавливаете PATH например, "/path/to/program" и хотите выполнить оболочку foo.sh посмотрите на PATH и затем найдите foo.sh в этом каталоге (/path/to/program), но когда вы используете Абсолютный путь (здесь ваша переменная foo), оболочка не будет искать путь и затем искать в этом каталоге (/path/to/program), чтобы найти «foo.sh».

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