hel*_*hod 7 bash software-installation
我已经写了一个叫bash的功能了,我通过github上分享。现在我正在为安装说明而苦苦挣扎。我知道“安装” bash 函数的两个选项:
.bashrc
.bashrc
所以,我的想法是建议下载该函数并相应地修改.bashrc
文件。
我调查了类似的项目是如何实现这一点的,其中一些甚至.bashrc
在安装时操纵文件(即他们将功能放在那里)。这样做似乎很常见,但我觉得.bashrc
自动操作是一个坏主意。
那么,什么是首选方式?对此是否有一些共识?
分发方式有3种:
$HOME/.bashrc
.bashrc
/etc/profile.d
我想说这取决于函数的数量及其长度。如果它是 2 个或更多函数,并且它们有点长,我几乎会将它们作为单个文件(或多个文件)分发,该文件通过用户的$HOME/.bashrc
文件获取或/etc/profile.d
通过您提供的脚本合并到 中。
如果它是单个函数或可能是 2 个函数,并且它们很短,那么我会严格将它们作为 .txt 文件分发,或者简单地将它们作为代码发布到 github 上,以便将其复制/粘贴到您现有的环境中,即包含或$HOME/.bashrc
下的预先存在的文件/etc/profile.d
,最终将其准确地留给用户。
注意: /etc/profile.d
包含多个 shell(Csh、Bash、Zsh 等)的文件。此处包含的任何文件也将被这些其他 shell 使用。这里文件的命名决定了哪些 shell 将使用它们。A.csh
将提供 Csh/Tcsh,a.sh
将提供 Bash、Zsh 等。
/etc/profile.d
如果您好奇,添加的文件/etc/profile.d
应包含仅在登录开始时运行一次的命令。(这包括图形登录,因为它们也从登录 shell 开始。)如果 shell 是交互式的,则运行它的用户可能已登录,因此它可能有一个祖先(启动它的人,或启动启动它的人,或启动它,等等)那是一个登录 shell。
请参阅 AskUbuntu 上这个优秀的答案,标题为:Why is /etc/profile not invoked for non-login shells? ,其中详细介绍了交互式 shell 与登录 shell 之间的差异及其含义。