第二次配置是否会在我的脚本中重新运行所有shell命令?

时间:2014-10-27 00:53:54

标签: shell vagrant provisioning

我正在开发一个Vagrant shell脚本来设置一个安装了大量东西的Ubuntu VM。我注意到在配置期间运行sudo apt-get update需要很长时间,因此测试我的Vagrant脚本正确设置VM非常慢。

如果我第二次运行vagrant provision,是否会在我的脚本中重新运行所有shell命令,还是只重新运行新添加的设置内容?我真的想减少这个脚本的开发时间!

2 个答案:

答案 0 :(得分:2)

在供应脚本中使用旁路逻辑

当您重新运行给定的Vagrant shell配置程序时,它必须重新运行整个脚本。您可能想要应用的任何旁路或短路必须作为条件语句设计到您的脚本中。举个例子:

# Only install something if a certain file is missing.
if [ ! -f /some/file ]; then
    : # run your installer
fi

答案 1 :(得分:0)

是的,它将重新运行脚本中的所有shell命令。您可以编写一个检查文件是否存在的脚本。如果文件存在则运行脚本并创建文件,以便下次文件存在并且脚本不会执行。