Bash
我可以在 shell 腳本中刷新我的 shell 嗎?
我正在嘗試設置一個腳本,該腳本以最小的 CentOS 6 安裝開始,並為 Ruby 開發提供它。
#!/bin/bash # Add PostgreSQL Repo rpm -i http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm # Add NginX Repo echo '[nginx]' > /etc/yum.repos.d/nginx.repo echo 'name=nginx repo' >> /etc/yum.repos.d/nginx.repo echo 'baseurl=http://nginx.org/packages/centos/6/$basearch/' >> /etc/yum.repos.d/nginx.repo echo 'gpgcheck=0' >> /etc/yum.repos.d/nginx.repo echo 'enabled=1' >> /etc/yum.repos.d/nginx.repo # Update yum update -y # Install NginX, PostgreSQL, and Ruby Dependencies yum install -y nginx postgresql91-server postgresql91-contrib gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison piconv-devel sqlite-devel git-core # PostgreSQL Post Install service postgresql-9.1 initdb chkconfig postgresql-9.1 on # Install rbenv system wide install git clone git://github.com/sstephenson/rbenv.git /usr/local/rbenv # Install ruby-build git clone git://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build # Add rbenv to the path echo '# rbenv setup - only add RBENV PATH variables if no single user install found' > /etc/profile.d/rbenv.sh echo 'if [[ ! -d "${HOME}/.rbenv" ]]; then' >> /etc/profile.d/rbenv.sh echo ' export RBENV_ROOT=/usr/local/rbenv' >> /etc/profile.d/rbenv.sh echo ' export PATH="$RBENV_ROOT/bin:$PATH"' >> /etc/profile.d/rbenv.sh echo ' eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh echo 'fi' >> /etc/profile.d/rbenv.sh chmod +x /etc/profile.d/rbenv.sh # SHELL NEEDS TO BE REFRESHED HERE # Install latest Ruby rbenv install 1.9.3-p286 # Set Global Ruby rbenv global 1.9.3-p286
我收到一個 rbenv: command not found 錯誤,當它到達使用 rbenv 的地步時,因為我的 shell 需要刷新/重新啟動才能辨識命令。我怎樣才能做到這一點?謝謝。
您可以嘗試採購新的環境文件。往上看,我猜,
# SHELL NEEDS TO BE REFRESHED HERE source /etc/profile.d/rbenv.sh
和/或
source ${HOME}/.rbenv
加上已創建的任何其他文件,您需要包括在目前 shell 中。