在执行$ SHELL之后继续执行bash脚本

时间:2018-11-26 20:15:17

标签: bash

我正在制作一个bash脚本,它将安装rbenvruby

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install $rubyVersion
rbenv global $rubyVersion

但是当调用exec $SHELL时,bash进程将被新的bash进程代替,并且脚本将停止(当然)。

如何使脚本继续?

2 个答案:

答案 0 :(得分:2)

您似乎正在尝试通过修改.bashrc文件然后调用exec $SHELL来实现多个目标。这些操作都不会修改正在运行该脚本的shell。要修改当前的外壳,您想“获取” .bashrc文件。使用“点符号”代替调用exec $SHELL

. ~/.bashrc

祝你好运!

答案 1 :(得分:0)

将执行程序$ SHELL行替换为“ $ SHELL”行或完全删除这些行