将第二次重新运行脚本中的所有shell命令



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

如果我第二次运行vagrant provision,它是要重新运行脚本中的所有shell命令,还是只重新运行新添加的安装程序?我真的想减少这个脚本的开发时间!

在配置脚本中使用旁路逻辑

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

# Only install something if a certain file is missing.
if [ ! -f /some/file ]; then
    : # run your installer
fi
是的,它将重新运行脚本中的所有shell命令。您可以编写一个脚本来检查文件的存在。如果文件存在,运行脚本并创建文件,这样下次文件就在那里,脚本就不会执行。

最新更新