我正在查看两个版本的 Apache 的配置脚本之间的差异,我在新版本的配置中注意到以下内容:
if [ some test ]; then :
do this
else
do that
与旧版本相比:
if [ some test ]; then
do this
else
do that
唯一的区别是:(冒号),无操作,在 then 语句之后。
编辑1:所以新版本基本上是说:
if "this" then "do nothing"
"do this"
else
"do that"
故意添加那个冒号的目的是什么?
注意我见过类似的问题What Is the purpose of the `:' (colon) GNU Bash Builtin?但这不包括这个特定的场景。
编辑 2:当您将 2.2.17 版中 Apache APR 的配置脚本与 2.2.24 版中的配置脚本进行比较时,这是可见的。
从Apache 站点下载这两个 tarball,解压后配置文件位于目录 httpd-2.2.x/srclib/apr 中,这两个版本都是如此。
v2.2.24 版本中的第 26015 行显示了这个结构。