bash - 如何检查 bash 脚本是在 Vagrant 机器内部还是外部执行的?

标签 bash vagrant

我和 Vagrant 有一个项目。有时我在主机上工作。我从客人那里工作的其他一些人。我有一个只能在Guest 内部工作的脚本。我想检查我是在 vagrant 机器内部还是外部,以避免出现错误消息。这就是我正在做的:

if ! [ -d "/home/vagrant/project-folder" ]; then
    echo 'Cannot execute current script outside the vagrant';
    exit
fi;

除了检查文件夹是否存在,还有另一种方法可以检查我是否在 Vagrant 机器中?

最佳答案

您可以使用传递给脚本的环境变量:

config.vm.provision "shell", path: "script.sh", env: {"IN_VAGRANT" => "true"}

然后在脚本中:
if [-z "$IN_VAGRANT" ]; then
    echo 'Cannot execute the current script outside the vagrant';
    exit 1
fi  

或者只是检查 logname ?
if [ `logname` = "vagrant" ]; then
    echo 'Cannot execute the current script outside the vagrant';
    exit 1
fi  

关于bash - 如何检查 bash 脚本是在 Vagrant 机器内部还是外部执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44241938/

相关文章:

ssh - 设置 ssh key 后无法使用 vagrant up 登录 vagrant

bash - 指定任务的绝对路径的运行gradle会将名称解释为命令

bash - Git 哈希输出与 sha1sum 不匹配,为什么?

linux - 运行 bash 脚本时出现 Bash 错误太多参数

postgresql - 如何从 vagrant virtualbox 机器连接主机 PostgreSQL

mysql - Vagrant + SSH + Bash + MySQL - 运行脚本

python - Django 开发服务器未检测到我的 html 文件中的更改

arrays - 使用变量作为数组名称在 bash 中创建数组

regex - 使用 Bash 正则表达式匹配 (=~),其中正则表达式包含引号(“字符”)

python - 如何连接 Vagrant 主机上的兔子?