程序独立于其路径

时间:2016-12-20 19:55:04

标签: linux

开发人员通常如何处理可执行文件的不同路径?

我的程序目前在/ usr / local / bin中,我想知道如何使它工作在/ usr / local / bin或/ usr / bin中,同时能够从其中一个访问配置文件etc文件夹(取决于可执行文件路径)。

我不能只使用相对路径,因为我需要使它相对于可执行文件的路径,即便如此,这还不够,因为我需要访问/ etc天气比/ usr / local /等

有没有一种常见的方法来处理这种情况?它是在安装过程中处理的吗?我是否需要为本地和全局路径制作不同版本的程序?

2 个答案:

答案 0 :(得分:1)

在shell脚本中,您可以使用

检测脚本的可执行路径
String out = sprintf("%02d", a);

并与之合作。

答案 1 :(得分:0)

如果您以root身份运行程序,那么它应该能够访问/ etc /或任何其他地方的配置文件而不会出现问题。您可以从脚本中grep或者您需要的任何内容。

如果您的程序不是以root身份运行,那么您应确保在/ etc /上访问的配置文件为用户提供了读取它的权限。有关详细信息,请参阅chmod man

最后,您的脚本应该可以从您提到的任何位置运行良好,尽管/usr/local/bin/通常是本地开发的脚本应该去的地方。只需按照完整路径调用脚本,它就可以运行:ex:/usr/local/bin/script

注意:不要忘记让脚本可执行:chmod +x /usr/local/bin/script