请问一下这段代码怎么解释:
PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`
if [ -z "$PIDFILE" ] ; then
echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars >&2
exit 2
fi
主要是(PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`)这段,在复制中有分号,还有echo,是什么道理?
还有就是下面的-z是判断什么的?

解决方案 »

  1.   

    应该发linux版块
    echo $APACHE_PID_FILE` //这个变量不知是什么,说是输出apache文件的进程id (/etc/apache2/envvars)
      

  2.   

    PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`
    --------------------------------------------------------当然有分号, PIDFILE=之后那是一段字符串,把分号写进去了,
      

  3.   

    PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`
    -------------------------------------
    把反单引号内语句的执行结果赋值给PIDFILE   也就是APACHE_PID_FILE的值
    . /etc/apache2/envvars 相当于source  /etc/apache2/envvars   作用是让/etc/apache2/envvars里的设置生效 比如环境变量   很可能环境变量APACHE_PID_FILE的值就是在/etc/apache2/envvars里设置的
    因为反单引号内执行的是2个语句  所以语句之间用分号分隔  别的语言也是如此吧
    echo就是输出 -z  是判断字符串的长度 如果大于0则为真 
      

  4.   

    echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars >&2这句话的作用是把ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars这句错误信息定向到标准错误输出里0(stdin 标准输入)
    1(stdout 标准输出)
    2(stderr标准错误输出)
      

  5.   

    请问一下这段代码怎么解释:
    PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`
    if [ -z "$PIDFILE" ] ; then
    echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars >&2
    exit 2
    fi 1: 执行脚本/etc/apache2/envvars 输出变量APACHE_PID_FILE值 ;并赋给变量PIDFILE;
     2:如果变量PIDFILE长度为0 (即PIDFILE值为空)则输出错误提示 :ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars  >&2(即:将当前的标准输出流重定位到错误输出流)
     3:退出当前的脚本。