0%

编写自定义启动脚本时的注意项

这篇文章介绍了作者在使用和编写自定义启动脚本时感受到的一个需要注意的点,简单来说,就是:

一定要打印出事实上的最终启动命令

自定义启动脚本的使用场景

我们知道,启动一个程序需要固定的命令,比如说

  • C/C++/Go可以编译出一个可执行文件,./app来启动
  • Java通过JDKjava命令启动,java APP

但是,管理大型项目时,未必会是简单的./app这样就可以启动的,我们有可能会需要传入许多选项和参数:

1
2
3
./exec -option1 -option2 arg1

./app -debug -entryPoint 3000

而这些选项和参数又有可能依赖于更高级的输入,比如说配置文件,环境变量等等

这时,就是自动化启动脚本登场的时候了,通过从高层输入(比如文件,环境变量)抽取出选项和参数,最终自动形成启动命令

自动化启动脚本导致的问题

在各大IDE中,想要使用Debug功能,需要提供的正是最终启动命令,也就是上文的./app -debug -entryPoint 3000这种

否则IDE无法调用调试器连接调试端口,也就无法实现单步调试,变量检查等功能了

但是要想从自动化脚本和当下的高层输入一起来推算出最终启动命令,可能是一件比较困难或者至少是麻烦的事情(复杂的自动化启动脚本可能本身就有上百行)

解决办法

在自动化脚本启动最终命令之前,将最终命令打印出来。

这样,我们就只需要执行一次自动化脚本,而后将打印出来的最终命令提供给IDE,就可以开启Debug模式了