Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Emacs添加(前置)“:&引用;在shell中创建路径 我注意到Emacs中的shell缓冲区(24.3.1)有(额外的)“:”在Mac OS X上的$PATH变量的开头(但不是在我的Linux笔记本电脑上有相同的文件),与我的常规shell相比,它在中间的某个地方。这只是我,还是mac上的Emacs是出于某种目的?我能阻止它吗?我不认为它造成了任何实际问题,但它确实引起了RVM的警告,理论上它有风险_Macos_Shell_Emacs_Path_Rvm - Fatal编程技术网

Macos Emacs添加(前置)“:&引用;在shell中创建路径 我注意到Emacs中的shell缓冲区(24.3.1)有(额外的)“:”在Mac OS X上的$PATH变量的开头(但不是在我的Linux笔记本电脑上有相同的文件),与我的常规shell相比,它在中间的某个地方。这只是我,还是mac上的Emacs是出于某种目的?我能阻止它吗?我不认为它造成了任何实际问题,但它确实引起了RVM的警告,理论上它有风险

Macos Emacs添加(前置)“:&引用;在shell中创建路径 我注意到Emacs中的shell缓冲区(24.3.1)有(额外的)“:”在Mac OS X上的$PATH变量的开头(但不是在我的Linux笔记本电脑上有相同的文件),与我的常规shell相比,它在中间的某个地方。这只是我,还是mac上的Emacs是出于某种目的?我能阻止它吗?我不认为它造成了任何实际问题,但它确实引起了RVM的警告,理论上它有风险,macos,shell,emacs,path,rvm,Macos,Shell,Emacs,Path,Rvm,谢谢 根据emacsshell命令的帮助条目,启动的shell将文件~/.emacs\u SHELLNAME或~/.emacs.d/init\u SHELLNAME.sh作为第一个命令列表(如果其中一个文件存在)。因此,您可以在这两个文件中的一个文件中修改路径环境变量的值,但是您应该检查您的shell(可以按照该顺序使用显式shell文件名变量、ESHELL环境变量或shell文件名变量进行配置)不忽略启动期间发出的命令 另一个原因可能是您的(系统范围)配置将当前目录包含在PATH值中(您可以在

谢谢

根据
emacs
shell命令的帮助条目,启动的shell将文件
~/.emacs\u SHELLNAME
~/.emacs.d/init\u SHELLNAME.sh
作为第一个命令列表(如果其中一个文件存在)。因此,您可以在这两个文件中的一个文件中修改
路径
环境变量的值,但是您应该检查您的shell(可以按照该顺序使用
显式shell文件名
变量、
ESHELL
环境变量或
shell文件名
变量进行配置)不忽略启动期间发出的命令

另一个原因可能是您的(系统范围)配置将当前目录包含在
PATH
值中(您可以在终端中使用
echo$PATH
进行检查),因此您必须重新配置shell,而不是
emacs


考虑到安全性,将当前目录放在
路径
中确实存在无意中执行错误程序的风险(例如:您有一个名为
test
的自编程序,并且希望执行
/usr/bin/test
)。如果在使用超级用户权限时发生这种情况,可能会导致一些严重的问题。

通过在路径末尾附加点,而不是在路径开头加上点,可以减少“安全问题”。@choroba:是的,这样可以降低执行未安装程序的风险(或者根本无法通过
路径
变量访问)。谢谢!我没有任何~/.emacs_*或~/.emacs.d/init_*文件。我没有ESHELL集。
显式shell文件名
为零。
shell文件名
为“/bin/bash”。我不认为它会受到任何系统范围文件的影响-并且我已经确保我的常规shell不会有这种情况。我不认为我会创建一个名为“test”的可执行文件,我会尽量避免创建与重要的共享可执行文件同名的可执行文件。我确实有时认为我应该将我是一只老狗,我已经有了这个设置很多年了。我只是想弄清楚为什么我的Mac电脑上的emacs前端有个.path,不像我在其他地方的环境,我使用了一组共享的.path文件。但是,感谢你的回答,我现在添加了一个~/.emacs_bash文件,用
path=`ruby-e'puts ENV[“path”]。split(:“”).reverse.uniq.reverse.join(“:”`
它删除DUP并只留下最后一个…我想这就是我想要的。谢谢。