У меня есть emacs на OS X, который поставляется предварительно установленным и находится в /usr/bin/emacs . Он не позволяет мне запускать его как процесс bg (используя &) и не предоставляет мне приятного графического интерфейса.

Поэтому я установил пакет emacs с графическим интерфейсом, который устанавливается в /Applications/Emacs.app/Contents/MacOS - имя исполняемого файла - Emacs .

Я хочу, чтобы моя OS X всегда указывала на /Applications/Emacs.app/Contents/MacOS/Emacs вместо /usr/bin/emacs . Я обновил свой .profile и добавил путь к графическому Emacs в PATH.

Теперь, если я запустлю which emacs , это приведет к:

/Applications/Emacs.app/Contents/MacOS/emacs
  1. Почему это работает? Почему приложение Emacs GUI теперь используется вместо предустановленного?
  2. Почему система печатает 'emacs' в нижнем регистре, а фактическое имя приложения начинается с верхнего регистра?

1 ответ1

1
  1. Со страницы Википедии о PATH:

    Когда имя команды задается пользователем или из программы выполняется вызов exec, система выполняет поиск пути, просматривая каждый каталог слева направо в списке и ищет имя файла, соответствующее имени команды. После обнаружения программа выполняется как дочерний процесс командной оболочки или программы, которая выдала команду.

  2. В файловой системе Mac OSX по умолчанию регистр не учитывается. То есть нет различий между /Applications/Emacs.app/Contents/MacOS/Emacs и /Applications/Emacs.app/Contents/MacOS/emacs .

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