[英]Making bash script continue after exec $SHELL
我正在制作一個將安裝rbenv
和ruby
的bash腳本。
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進程替換,並且腳本將停止(當然)。
如何使腳本繼續?
看來您正在嘗試通過修改.bashrc
文件然后調用exec $SHELL
來實現多個目標。 這些操作都不會修改正在運行該腳本的shell。 要修改當前的shell,您要“獲取” .bashrc
文件。 使用“點符號”代替調用exec $SHELL
:
. ~/.bashrc
祝你好運!
用“ $ SHELL”行替換exec $ SHELL行或完全刪除那些行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.