我已经安装了 Ruby、RVM 和 Jekyll,如下所示本教程按照这些步骤操作后,一切都正常。
我的问题是,每次我打开一个新的终端窗口并希望 Jekyll 使用 重建网站时jekyll build
,我都会收到错误jekyll: command not found
。临时解决方案是重新运行教程中的以下两个命令,然后 Jekyll 就可以正常工作:
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
检查 .profile 文件时,我注意到它显示“如果 ~/.bash_profile 或 ~/.bash_login 存在,则 bash 不会读取此文件”。我再次运行前两个命令,用 .bash_profile 替换 .profile,但这似乎没有任何效果。
[[ -s "$HOME/.bash_profile" ]] && source "$HOME/.bash_profile"
我仍然收到 Jekyll 错误并且我的 .bash_profile 文件存在但是完全是空的。
有没有更永久的解决方法,还是每次我打开终端用 Jekyll 重建站点时都只能运行前两个命令?
答案1
~/.bashrc
将被要求交互式+非登录shell
而~/profile
将要求交互式+登录 shell
推荐的方法是
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
在~/.profile
本身 中 但在.bash_profile
投入中source "$HOME/.profile
。
第二种方法是添加
`[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" `
在你的.bashrc
。
这里这就是为什么第二种方式不太受推荐。
更多关于 .bashrc
,.profile
和bash_profile
。
答案2
您可以为以上三个命令创建别名。
alias jekyllb='[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" && [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" && jekyll build'
从今以后,无论何时运行,jekyllb
所有三个命令都会按顺序运行。