当我们要运行可执行文件时,为什么需要在“ ./”前面加上“ ./”?

时间:2019-06-12 02:58:46

标签: c++ command-line cat

假设我有一个名为WillShowViewController(UINavigationController navigationController, [Transient] UIViewController viewController, bool animated)的可执行C ++程序,我想使用UUOC运行它。我可以使用以下命令成功运行它:

public class naviDeleagte : UINavigationControllerDelegate { public override void WillShowViewController(UINavigationController navigationController, [Transient] UIViewController viewController, bool animated) { //call test here if you use a push instead of modal } }

但是现在,由于某些要求,我希望将命令行格式改为:

lencode

我无法运行该程序。我该如何实现?

2 个答案:

答案 0 :(得分:3)

使用./前缀的原因是因为当前目录(如快捷方式"."所指)不在您的$PATH环境变量中。

一个答案是将"."放在您的$PATH环境中。

对于bash:

export PATH=$PATH:.

对于tcsh:

setenv PATH ${PATH}:.

确定您的外壳:

echo $0

有关外壳的更多信息:

man bash

man tcsh

但这是安全隐患。更好的方法(如Justin Rameriz的回答所述)是将包含lencode(如果/home/user/位于lencode的目录,则包含lencode的目录)放在/home/user/lencode中,或将$PATH移至lencode中的目录。

例如,如果您使用$PATH作为shell:

tcsh

要在下次登录时保留此设置,应将其放置在mkdir $HOME/bin cp lencode $HOME/bin setenv PATH ${PATH}:$HOME/bin 文件中:

$HOME/.tcshrc

答案 1 :(得分:1)

将lencode目录添加到您的路径,或将其移动到您路径中的目录。您可能并不总是希望当前目录位于您的路径中。也就是说,只要您在cwd中有一个文件恰好是命令名,就可以了。