又是一个比较长的函数,是用来检查文件权限,目录条件的。具体代码如下:

  1. check_env()
  2. {
  3. # Check user privilege.
  4. #检查用户权限
  1. check_user root
  2.  
  3. # Check FQDN hostname.
  1. #检查主机名是否符合规则
  2. check_hostname
  3.  
  4. # Check config tool: dialog.
  1. #检查配置工具dialog是否存在
  2. check_pkg ${BIN_DIALOG} ${PKG_DIALOG}
  3.  
  4. ECHO_INFO -n "Checking configuration file: ${IREDMAIL_CONFIG_FILE} ..."
  5. #

判断配置文件是否存在,默认的安装包下是没有的,应该是用于安装中断后,恢复安装的。

  1. if [ -f ${IREDMAIL_CONFIG_FILE} ]; then
  2. if grep '^#EOF$' ${IREDMAIL_CONFIG_FILE} >/dev/null; then
  3. echo -e " [FOUND]"
  4. ECHO_QUESTION -n "Use it for mail server setting? [y|N]"
  1. #

读取已经存在的配置文件

  1. read_setting ${AUTO_USE_EXISTING_CONFIG_FILE}
  1. #

给用户一个选择,是用已经存在的配置文件,还是重新安装

  1. case $ANSWER in
  2. Y|y )
  3. ECHO_INFO "Use config file: ${IREDMAIL_CONFIG_FILE} for mail server setting."
  4. . ${IREDMAIL_CONFIG_FILE}
  5.  
  6. # Check installation status.
  7. # After each component installation was completed, there
  8. # should be a variable in ${STATUS_FILE}, e.g.
  9. #
  10. # export STATUS_PHP_INSTALLATION='DONE'
  11. # export STATUS_PHP_CONFIGURATION='DONE'
  12. #
  1. #

判断状态文件是否存在,如果存在则读取状态文件

  1. if [ -f ${STATUS_FILE} ]; then
  2. ECHO_INFO "Import installation process status from file: ${STATUS_FILE}."
  3. . ${STATUS_FILE}
  4. else
  5. echo '' > ${STATUS_FILE}
  6. fi
  7.  
  8. # Initialize tip file.
  1. #

tip文件是安装完成后的一些账号密码文件,此处初始化该文件

  1. if [ ! -f ${TIP_FILE} ]; then
  2. cat > ${TIP_FILE} <<EOF
  3. ${CONF_MSG}
  4. EOF
  5. fi
  6. ;;
  7. N|n|* )
  8. ECHO_INFO "Skip configuration file: ${IREDMAIL_CONFIG_FILE}."
  1. #

新的安装,CONFIG_VIA_DIALOG在conf/global中定义,他的值是 #export CONFIG_VIA_DIALOG="${DIALOG_DIR}/config_via_dialog.sh" 执行窗口安装程序,开始新的安装

  1. . ${CONFIG_VIA_DIALOG}
  2. ;;
  3. esac
  4. else
  5. ECHO_INFO "Found, but not finished."
  6. . ${CONFIG_VIA_DIALOG}
  7. fi
  8. else
  9. ECHO_INFO "[NOT FOUND]"
  10. . ${CONFIG_VIA_DIALOG}
  11. fi
  12.  
  13. check_runtime_dir
  14. }

check_env函数解析的更多相关文章

  1. [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")

    javascript eval函数解析json数据时为什么 加上圆括号?为什么要 eval这里要添加 “("("+data+")");//”呢?   原因在于: ...

  2. PHP json_decode 函数解析 json 结果为 NULL 的解决方法

    在做网站 CMS 模块时,对于模块内容 content 字段,保存的是 json 格式的字符串,所以在后台进行模块内容的编辑操作 ( 取出保存的数据 ) 时,需要用到 json_decode() 函数 ...

  3. Matlab中bsxfun和unique函数解析

    一.问题来源 来自于一份LSH代码,记录下来. 二.函数解析 2.1 bsxfun bsxfun是一个matlab自版本R2007a来就提供的一个函数,作用是”applies an element-b ...

  4. socket使用TCP协议时,send、recv函数解析以及TCP连接关闭的问题

    Tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据. 在阻塞模式下, send函数的过程是将应用程序请求发送的数 ...

  5. sigaction函数解析

    http://blog.chinaunix.net/uid-1877180-id-3011232.html sigaction函数解析  sigaction函数的功能是检查或修改与指定信号相关联的处理 ...

  6. driver_register()函数解析

    driver_register()函数解析 /** * driver_register - register driver with bus * @drv: driver to register *  ...

  7. async函数解析

    转载请注明出处:async函数解析 async函数是基于Generator函数实现的,也就是说是Generator函数的语法糖.在之前的文章有介绍过Generator函数语法和异步应用,如果对其不了解 ...

  8. tf.train.shuffle_batch函数解析

    tf.train.shuffle_batch (tensor_list, batch_size, capacity, min_after_dequeue, num_threads=1, seed=No ...

  9. oracle中next_day()、last_day()函数解析

    oracle中next_day()函数解析 Sql代码 当前系统时间的下一星期一的时间select   next_day(sysdate,1) from dual NEXT_DAY(date,char ...

随机推荐

  1. C#关于winforms窗体大小、边框、移动、动画等属性

    1.窗体的边框设置为无: 2.把窗体高度调整为25,发现跑的时候总在40左右,这时需要改改属性, 把MinimumSize(0, 0)改成不为0的,最好改成和自己想要一样的大小, 最大高宽也应该这么调 ...

  2. cacti结合nagios

    使用系统ubuntu12.0.45 监控软件,cacti 使用的是源码安装系统自带的版本过低需要添加插件 nagios采用的系统自带版本 安装nagios apt-get install nagios ...

  3. Bootstrap学习应用

    1.栅格式布局:     栅格只有12格  主要用于没有设计经验,自行设计网页. 起步:     导入一个CSS文件 和两个JS文件  BOOTATRAP.MIN.CSS  ---   /*IE(ht ...

  4. bzoj 3611: [Heoi2014]大工程

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #d ...

  5. 杭电--1102--Constructing Roads--并查集

    Constructing Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  6. 通过GET方法返回定义的任意对象

    package util; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputSt ...

  7. Spring init-method和destroy-method 的使用

    Spring init-method和destroy-method 的使用 Spring 为了满足开发者在执行某方法之前或者在结束某个任务之前需要操作的一些业务,则提供了init-method和des ...

  8. 第三章:Git使用入门

    本文主要讲git的使用,其实网上这种教程已经很多了,但是还是要说一下,在这里先把基础的东西跟大家讲一下,然后再附上一个彩蛋,将一些别人不会提到的git技术,不要错过 哦! First: Git概念 1 ...

  9. as3 中文转拼音

    private static const PinYin:Object = {"a":"\u554a\u963f\u9515","ai":&q ...

  10. kendo ui之grid列表

    1.test_grid.jsp <html><head> <%@ include file="/WEB-INF/jsp/common/top.jsp" ...