实际上,我希望从bash脚本内部调用编译后的C代码。我希望能够从任何目录调用./a.out并执行它。
这一切都源于一些非常简单的事情。我做了一个诅咒程序,是一个终端的屏幕保护程序。我希望能够调用bash命令screensaver
,并希望通过bash调用c代码。我希望能够从文件系统的任何地方调用它。我在2013年的Macbook上运行,但我认为这更多的是对C问题的陌生,而不是硬件问题,如果需要,我可以提供更多的细节。
文件在这里:/Users/User/screensaver/screensaver.c
cd /Users/User/screensaver
gcc screensaver.c
创建a.out
我可以跑了./a.out
代码运行。
我试过打电话给./Users/User/screensaver/a.out
等等。
这不起作用,只是说文件不存在。我试过使用exec
和source
但没有任何效果。一定有办法从别的地方把这个叫做对吧?我知道理论上我可以将当前目录保存为一个环境变量,cd
保存到dir,./a.out
中,然后在quitcd
返回到保存的dir中,但这似乎很难实现它的价值。
编辑:我看到理论上我可以把它放在mybin
中,并用-o
编译。我没有试过,但我不想这么做,因为这段代码还在开发中,所以我不想每次都编译和移动它。
最佳答案
这起作用:
“尝试调用/Users/User/screensaver/a.out,不要在路径的开头加一个点。在保存可执行文件的目录中时,需要指定./a.out而不是a.out,这是一个特殊的安全原因。”
-齐奥诺