bash脚本中set -e,设置该选项后,当前脚本任何一个命令执行返回的状态码不为0就退出整个脚本。
set -u,设置该选项后,当前脚本在执行过程中尝试使用未定义过的变量时,报错并退出整个脚本。
scope.sh在一开头就做了set -eu的设置。
下面我就直接在源码的基础上添加注释来进行讲解。对于scope.sh的注释我放到github上了。
https://github.com/MXi4oyu/scope/blob/master/scope
后来我简单看了下这个bash脚本,主要是用docker运行了weaveworks/scope这个镜像。而这些都是官方做好的东西,对于我来说想要了解其具体的编程实现来说用处不大,于是后面的注释懒得写了,准备看下Makefile 这个文件,然后编译一把试试。而在看这个文件之前,我想先了解下它大概引用了哪些第三方组件,于是把vendor这个目录下的第三方依赖稍微整理了下。先上张图。
粗略的统计了下,第三方依赖大概104个吧。哎呀,我的妈呀。吓到宝宝了。上面这个是我画的思维导图。
目前也放到github上供大家下载交流学习。本人英文不好,翻译的可能有些不准确,望大家多多批评指正。