码迷,mamicode.com
首页 > 系统相关 > 详细

2015年9月13日课程作业--关于SHELL的问题

时间:2015-09-14 19:38:18      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:create   export   代理人   等等等   

1、描述shell程序的运行原理(可附带必要的图形说明);

  SHELL是一种特殊的程序,官方定义为是和内核的接口,类似于内核的代理人。人类和LINUX系统对话时,需要一翻译,而shell就是这个翻译。我们用SHELL编辑自己想要执行的一系


列命令后,SHELL可以翻译给系统内核听,然后系统内核执行。

2、总结shell编程中所涉及到的所有知识点(如:变量、语法、命令状态等等等,要带图的哟);


//以下实例来自iredmail的安装脚本

tmprootdir="$(dirname $0)"  //定义临时目录,也就是shell中的变量
echo ${tmprootdir} | grep ‘^/‘ >/dev/null 2>&1
if [ X"$?" == X"0" ]; then   //根据上文中最后的命令状态,判断是否执行
    export ROOTDIR="${tmprootdir}"  //同时使用了命令状态和if判断
else
    export ROOTDIR="$(pwd)"
fi

# Create SSL/TLS cert file.
check_status_before_run generate_ssl_keys  //check_status_before_run是个函数


#下面是这个函数的定义
check_status_before_run()
{
    # If function was successfully executed, this function will write one line
    # in $STATUS_FILE:
    #
    #   export status_[function_name]=‘DONE‘
    #
    function_name="${1}"  //利用位置参数来获得变量值
    function_status_name="status_${function_name}"
    function_status_value="$(eval echo \$${function_status_name})"
    if [ X"${function_status_value}" == X"DONE" ]; then
        ECHO_SKIP "Function: $1."
    else
        $function_name
        #if [ X"$?" == X‘0‘ ]; then
        #    echo "export ${function_status_name}=‘DONE‘" >> ${STATUS_FILE}
        #fi
    fi
}


#另一个函数的定义,用到了for循环,if判断

backup_file()
{
    # Usage: backup_file file1 [file2 file3 ... fileN]
    if [ X"$#" != X"0" ]; then   //$# 添加到Shell的参数个数
        for conf_file in $@; do  //利用for循环读取配置文件,
            if [ -f ${conf_file} ]; then
                if [ X"${IREDMAIL_DEBUG}" == X"YES" ]; then
                    echo -e "${_BACKUP_FLAG} ${conf_file} -> $(basename ${conf_file}).${DATE}."
                fi

                cp -f ${conf_file} ${conf_file}.${DATE}
            else
                :
            fi
        done
    else
        :
    fi
}




3、总结课程所讲的所有循环语句、条件判断的使用方法及其相关示例;(if (jpg|png is not exist);echo ”You say a XX“)






2015年9月13日课程作业--关于SHELL的问题

标签:create   export   代理人   等等等   

原文地址:http://20150721.blog.51cto.com/10649191/1694665

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!