【发布时间】:2016-08-18 18:40:05
【问题描述】:
我有一个 bash 脚本,它将 rbenv 安装到 /usr/local 并将所需的环境变量添加到 /etc/profile。我的用户是root:
#!/bin/bash
exec {log_fd}>log.txt
git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv >&$log_fd 2>&1
git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build >&$log_fd 2>&1
echo 'export RBENV_ROOT=/usr/local/rbenv' >> /etc/profile >&$log_fd 2>&1
echo 'export PATH="/usr/local/rbenv/bin:$PATH"' >> /etc/profile >&$log_fd 2>&1
echo 'if which rbenv > /dev/null; then eval "$(rbenv init - --no-rehash)"; fi' >> /etc/profile >&$log_fd 2>&1
. /etc/profile
但是,PATH 变量没有按应有的方式导出,但 RBENV_ROOT 是!
~#: printenv
RBENV_ROOT=/usr/local/rbenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
MAIL=/var/mail/root
LANG=en_US.UTF-8
RBENV_SHELL=bash
我希望看到 /usr/local/rbenv/ 作为 PATH 的一部分,对吧?
我也尝试过切换添加路径的语法,但这也无济于事:
echo 'export PATH=$PATH:/usr/local/rbenv/bin' >> /etc/profile 2>&1
如果您想知道,我正在重定向输出,因为这都在一个whiptail 菜单中。
那么,为什么会显示一个变量 RBENV_ROOT 而不是我应该更新的 PATH ?
【问题讨论】: