我已经阅读了bash启动时加载的配置文件脚本:https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
我确实看到它找到了众所周知的文件:
当Bash作为交互式登录shell或作为具有--login选项的非交互式shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。在读取该文件之后,它按顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动shell以禁止此行为时,可以使用--noprofile选项。
我希望能够在我的shell开始时加载自定义配置文件脚本,例如:https://github.com/xvoland/Extract/blob/master/extract.sh 我想要的与我在gnu.org上看到的略有不同。我不想编辑标准的.bash *文件来添加它:
if [ -f ~/.init/extract.sh ]; then
. ~/.init/extract.sh
fi
我希望有一种方法可以让非root用户轻松地在〜/ .init这样的目录中放入自定义shell init脚本,并期望它们在自己的shell启动时运行。如果适用于任何shell,无论是bash,fish,zsh等,都会很棒。
作为开发人员和队友,向他人提供shell脚本,然后说服他们编辑他们的.bash *文件有点棘手。另外,我可以在nodejs npm项目上工作,将项目添加到允许〜/ npm_modules运行的路径,类似于全局安装:
export PATH="~/node_modules/.bin:$PATH"
如果只有一个名为〜/ .init的目录,只影响当前用户并且不需要root,那么只需将新文件复制到该文件夹即可。它比编辑.bash *文件更容易/更安全。
有没有办法以这种方式包含init脚本?