为流浪汉设置设置Shell脚本

前端之家收集整理的这篇文章主要介绍了为流浪汉设置设置Shell脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试编写一个 shell脚本来通过Vagrant在Ubuntu上设置我的服务器环境,并遇到脚本意外结束的问题.我在Vagrant的配置配置选项中添加了shell脚本的路径.

流浪汉:

# Specify our provision script
config.vm.provision "shell",path: "scripts/bootstrap.sh"

我的剧本:

#!/bin/bash

# Install dependencies for Ruby
sudo apt-get update
sudo apt-get install -y git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common

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

运行之后,我希望将存储库克隆到.rbenv文件夹中,并将rbenv添加到〜/ .bashrc中的$PATH以及评估的rbenv init函数并放入〜/ .bashrc.但是,当在Vagrant的提供步骤上执行脚本时,我最终只是克隆了git存储库,然后终止而不在我的脚本中执行任何其他操作.

输出

==> default: Processing triggers for libc-bin (2.19-0ubuntu6) ...
==> default: Setting up rbenv
==> default: Cloning into '.rbenv'...

然后脚本终止,〜/ .bashrc保持不变.我想知道如何更改我的shell脚本以便它将执行我想要的操作(将rbenv添加到〜/ .bashrc).有任何想法吗?

正如mklement0所说,脚本不会像流浪者用户那样运行:它以root身份运行.

如果要以流浪者用户身份运行脚本,则需要特权:false.

config.vm.provision :shell,privileged: false,path: "scripts/bootstrap.sh"

正如mklement0所说:使用set -xv调试配置脚本.

如果您想以其他用户身份运行,请不要忘记su用户将无法运行:How do I use su to execute the rest of the bash script as that user?

猜你在找的Bash相关文章