解剖 Nginx ·自动脚本篇(1)解析配置选项脚本 auto/options
- Author: Poechant
- Blog: blog.CSDN.net/Poechant
- Email: zhongchao.ustc#gmail.com (#->@)
- Date: March 4th, 2012
- Copyright © 柳大·Poechant
在安装Nginx
之前(即运行make
脚本之前),首先是进行安装的配置准备,包括环境检查及生成文件。这些工作是由自动脚本完成的。和绝大多数软件一样,Nginx
的自动脚本的入口,同样是名为configure
的文件。
除了configure
,其他的自动脚本都在auto
目录下。通过分析configure
脚本源码,我们可以看到,configure
首先运行了auto
目录下的几个自动脚本,如下:
. auto/options
. auto/init
. auto/sources
其中通过运行auto/options
脚本,来设定配置选项。下面将逐步分析auto/options
脚本是如何工作的。
1 读取configure
配置参数
开始先声明了 N 多变量,然后最主要的部分从这段开始:
opt=
for option
do
...
done
这段实际上是处理运行./configure
的时候携带的参数选项,for
循环每次对应一个参数选项 option。要注意for
循环体上面有一个全局的opt
变量。这个循环体内的第一个语句是最重要是,它是:
opt="$opt `echo $option | sed -e \"s/\(--[^=]*=\)\(.* .*\)/\1'\2'/\"`"
通过循环运行该语句后,opt
的值就是一个由空格来分隔的参数列表。然后在循环体中接下来是一个case-esac
,用来得到参数值,如下: