请问一下这段代码怎么解释:
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是判断什么的?
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是判断什么的?
echo $APACHE_PID_FILE` //这个变量不知是什么,说是输出apache文件的进程id (/etc/apache2/envvars)
--------------------------------------------------------当然有分号, PIDFILE=之后那是一段字符串,把分号写进去了,
-------------------------------------
把反单引号内语句的执行结果赋值给PIDFILE 也就是APACHE_PID_FILE的值
. /etc/apache2/envvars 相当于source /etc/apache2/envvars 作用是让/etc/apache2/envvars里的设置生效 比如环境变量 很可能环境变量APACHE_PID_FILE的值就是在/etc/apache2/envvars里设置的
因为反单引号内执行的是2个语句 所以语句之间用分号分隔 别的语言也是如此吧
echo就是输出 -z 是判断字符串的长度 如果大于0则为真
1(stdout 标准输出)
2(stderr标准错误输出)
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:退出当前的脚本。