如何在没有./a.out命令的情况下执行程序?

时间:2016-07-11 23:45:30

标签: c shell

我写了一个c程序。我想管道程序,我想让它看起来很有意义。因此,我不想每次都写./a.out,而是将其命名为changetext。为此,我按照以下方式编译了我的程序:gcc -o changetext myprog.c。据我所知,这应该取代./a.out的使用,而changetext应该替代使用command not foundencodeURIComponent('["category:Book","category:-Movie","author:John Doe"]')。但我得到了index.search('query', { facetFilters: 'Name:-John' }) 。我是c和unix环境的新手。任何建议都表示赞赏。

3 个答案:

答案 0 :(得分:3)

正如我在评论中所说,您可以在可执行文件前放置一个点斜杠(./)来运行它

./changetext

或者您放入PATH环境变量中引用的目录中。这里可以找到这个安全功能的一个很好的解释(感谢rubenvb):

http://www.linfo.org/dot_slash.html

它表示这或多或少是为了区分内置命令和用户编写的同名命令。我不相信。 shell可能只是更喜欢内置名称到用户提供的名称,并查看当前目录以及PATH。

但这是* nix方式。

答案 1 :(得分:1)

为了使用命令changetext编译和运行诸如chanhetext之类的程序,必须将二进制文件放在PATH环境变量中列出的目录中。建议您将自己制作的程序放在~/bin/目录中。假设~/bin/已存在,您将用于完成此操作的命令如下:     

gcc -o ~/bin/changetext myprog.c
如果它不存在,您只需创建它,然后注销并重新登录。

答案 2 :(得分:1)

如果您厌倦了在程序名称之前执行./,则可以始终创建别名,例如 alias a='./a.out'alias changetext='./changetext' 这只是在你每次输入changetext or a时基本找到,然后将其替换为./在其前面