OSX zsh-为什么二进制文件仅以完整路径执行?[重复]


-2

这个问题已经在这里有了答案:

我只是在编写一些小型C脚本并对其进行测试。为什么要剂量

~ Desktop: gcc test.c -o test ; /Users/xx/Desktop/test ;

工作正常

~ Desktop: gcc test.c -o test ; test ;

不起作用?为什么剂量OSX / ZSH需要完整的路径来执行二进制文件?


这个问题经常被问到-请在询问之前做一些研究。另请参见:superuser.com/questions/171909/...superuser.com/questions/248512/...superuser.com/questions/541749/...
slhck

对不起这是我的错!这是一个愚蠢的问题,如果我想一分钟的调用,我可能会意识到调用失败,因为新的可执行文件不在$ PATH中。
wowpatrick

Answers:


1

为了能够从当前目录运行可执行文件,您需要添加。到您的PATH环境变量。这可以通过PATH=$PATH:.在Shell中运行或添加export PATH=$PATH:.到您的来完成~/.zshrc

另一种选择是在您希望运行./的命令前加上命令

〜桌面:gcc test.c -o test;./test;


3
.通常将PATH 包含在内是一个非常糟糕的主意。这可能会导致命令的行为有很大不同,具体取决于运行命令时所在的目录。它还可能导致错误地运行当前目录(例如您刚刚从下载中解压缩的目录)中的恶意代码。习惯使用领导者./是更好的方法。
qqx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.