我有一個bash腳本,安裝rbenv
到/usr/local
,並將所需的環境變量添加到/etc/profile
。我的用戶是root
:bash腳本中的源/ etc/profile
#!/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/
作爲路徑的一部分,對不對?
我也試着開關了語法添加的路徑,但是這並沒有幫助:
echo 'export PATH=$PATH:/usr/local/rbenv/bin' >> /etc/profile 2>&1
在你想知道的情況下,我將輸出重定向,因爲這是所有的內一個whiptail菜單。
那麼,爲什麼要顯示一個變量RBENV_ROOT
,但不是我所謂的更新PATH
?
這就是我正在處理的問題......我可以從相同的腳本中獲取它,因此我不必啓動新的登錄shell? – Godzilla74
可以'rbenv init - --no-rehash'重置'PATH' ?! –