Emacs руководство говорит следующее: Both M-! and M-| use shell-file-name to specify the shell to use. This variable is initialized based on your SHELL environment variable when Emacs is started. If the file name does not specify a directory, the directories in the list exec-path are searched; this list is initialized based on the environment variable PATH when Emacs is started. Your .emacs file can override either or both of these default initializations.
shell-file-name
установлен в /usr/local/bin/zsh
в терминале, echo $SHELL
является usr/local/bin/zsh
и echo $PATH
является /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
Однако M-x ! echo $SHELL
является /bin/zsh
и M-x ! echo $PATH
is /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
Почему это так? Как изменить его, чтобы он оставался неизменным с терминалом $ PATH?
Исправление: 'M-x! echo $ SHELL' является '/ usr/local/bin/zsh'. Кроме того, он выглядит как $ PATH, показанный 'M-x! echo $ PATH' - это '/ etc/paths'. То есть login shell $ PATH игнорируется. – user3156459