shell中几个不太明白的地方

shell中几个不太明白的地方

各位前辈们,大家好。 我是一个新手,现在刚刚学习shell,随便拿了一个文件来看看,发现有些地方看不懂,希望能指点一下。 谢谢大家了~

#!/bin/bash
#/etc/rc.d/init.d/atd
. /etc/init.d/functions          # 这里"." 这个点与后面的文件之间有空格有什么作用? 好像没有空格的话应该是执行这个文件吧。 ./etc/init.d/functions 但他这个中间有空格,
                                           我就不明白了。
test -x /usr/sbin/atd || exit 0   #这里是检查/usr/sbin/atd这个文件是否有执行权限,但后面的 exit 0 这个就不理解了? 特别是这个 0 有什么意义?
RETVAL=0
#
#       See how we were called.
#
prog="atd"
start() {
        # Check if atd is already running
        if [ ! -f /var/lock/subsys/atd ]; then
            echo -n $"Starting $prog: "
            daemon /usr/sbin/atd
            RETVAL=$?
            [ $RETVAL -eq 0 ] && touch /var/lock/subsys/atd
            echo
        fi
        return $RETVAL
}
stop() {
        echo -n $"Stopping $prog: "
        killproc /usr/sbin/atd
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/atd
        echo
        return $RETVAL
}

restart() {
        stop
        start
}
reload() {
        restart
}
status_at() {
        status /usr/sbin/atd
}
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload|restart)
        restart
        ;;
condrestart)
        if [ -f /var/lock/subsys/atd ]; then
            restart
        fi
        ;;
status)
        status_at
        ;;
*)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
esac
exit $?                    #这个后面是要退出这个变量吗? 不退出有影响吗?
exit $RETVAL


哎,看这个看的好累哦。 希望大家多多指教啊。。      
1
”."命令和"source"命令是一样的
即在当前进程是读取一个文件, 大都是配置或是函数数类文件
可以简单理解成相当于C中的include
顺便, 这种用法正是这个帖子的答案http://www-900.ibm.com/developer ... k/awk-2/index.shtml

2
exit $RETVAL 是这个进程退出, 并给父进程返回一个退出码
一般用0表示成功运行完毕,正常退出
非0为异常退出, 一般为某一条件不满足或是出错后退出等
请运行以下示例查看结果
( exit 0 ); echo $?
( exit 127 ); exit $?

      
谢谢版主。。 弄明白了。。 呵呵~