博客
关于我
day5-Shell脚本编程精讲(ob14)-2
阅读量:349 次
发布时间:2019-03-04

本文共 2218 字,大约阅读时间需要 7 分钟。

Shell编程入门:从基础到实践

一、for循环

for循环是Shell编程中的基础结构,常用于批量处理任务。理解for循环的语法是掌握Shell编程的关键。

for循环结构语法

Shell中的for循环有两种形式:

  • for 变量名 in 列举值 do
    for i in `seq 3` do    echo $idone
  • for((exp1;exp2;exp3)) do
    for((i=1; i<=3; i++)) do    echo $idone
  • 例子13:批量检查Web服务状态并发送警报

    #!/bin/bashRETVAL=0SCRIPTS_PATH="/server/scripts"MAIL_GROUP="3xxxxxx1@qq.com 4xxxxxxx8@qq.com"LOG_FILE="/tmp/web_check.log"function Get_Url_Status() {    FAILCOUNT=0    for ((i=1; i<=3; i++)) do        wget -T 20 --tries=2 --spider http://${HOST_NAME} > /dev/null 2>&1        if [ $? -ne 0 ]; then            let FAILCOUNT+=1        fi    done    if [ $FAILCOUNT -eq 3 ]; then        RETVAL=1        NOW_TIME=`date +"%m-%d %H:%M:%S"`        SUBJECT_CONTENT="http://${HOST_NAME} service is error, ${NOW_TIME}."        for MAIL_USER in $MAIL_GROUP; do            echo "send to :$MAIL_USER ,Title:$SUBJECT_CONTENT" >> $LOG_FILE            mail -s "$SUBJECT_CONTENT" $MAIL_USER < $LOG_FILE        done    else        RETVAL=0    fi    return $RETVAL}# 定义要检测的网站[ ! -d "$SCRIPTS_PATH" ] && mkdir -p $SCRIPTS_PATH# 检查是否有相关的网站列表[ ! -f "$SCRIPTS_PATH/domain.list" ] && cat > $SCRIPTS_PATH/domain.list < /

    例子:批量创建用户并附上随机密码

    userchars="test"passfile="/tmp/user.log"for num in `seq 3` do    useradd $userchars$num    passwd="`echo "date $RANDOM"|md5sum|cut -c3-11`"    echo "$passwd" | passwd --stdin $userchars$num    echo -e "user:$userchars$num\t_passwd:$passwd" >> $passfile    sleep 1doneecho "This is oldboy training class contents"cat $passfile

    二、Shell函数

    Shell函数是Shell脚本的灵魂,通过定义函数可以将复杂的操作抽象成可重复利用的模块。

    函数定义

    function_name() {    # 函数体内的操作    return n}

    函数调用

    function_name

    三、Shell脚本调试

    在开发Shell脚本时,调试是必不可少的环节。以下是一些常用的调试工具和方法。

    使用dos2unix命令处理脚本

    dos2unix可以将Windows编辑的脚本转换为Linux格式,去除^M符号。

    使用bash命令参数调试

    sh [-nvx] scripts.sh-n:不执行脚本,只检查语法-v:显示脚本的执行过程-x:显示脚本的内容

    四、Shell编程规范

  • 变量命名规范

    • 全部大写或驼峰命名
    • 示例:${APACHE_ERR_NUM}${APACHE_ERR_NUM}
  • 函数命名

    • 首字母大写或驼峰命名
    • 示例:CreateFilecreateFile
    • 建议在函数名前加function保留字
  • 引用符号规范

    • 使用大括号引用变量
    • 示例:${APACHE_ERR_NUM}
  • 配置规范

    • 配置文件应保存在/etc目录下
    • 配置文件内容清晰易懂
  • 五、补充说明

  • 环境变量管理

    • 在脚本运行前,通过export重新声明环境变量
    • 示例:export PATH="/usr/local/bin:$PATH"
    • 这是为了避免在定时任务等场合使用脚本时出现环境变量问题
  • 脚本编写建议

    • 尽量使用source命令加载脚本
    • 示例:source func-1.sh
    • 使用.符号也可以加载脚本
  • 通过以上内容,可以看到Shell编程的基本语法和实践技巧。掌握这些知识点是成为一名专业的Shell脚本编写人员的重要基础。

    转载地址:http://tqhe.baihongyu.com/

    你可能感兴趣的文章
    php判断ip黑名单程序代码
    查看>>
    php判断复选框是否被选中的方法
    查看>>
    PHP判断指定目录下是否存在文件
    查看>>
    php判断数组是否为空
    查看>>
    PHP判断数组是否有重复值、获取重复值
    查看>>
    springboot基于Web的社区留守儿童管理系统源码毕设+论文
    查看>>
    Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】
    查看>>
    PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
    查看>>
    PHP加密与安全的最佳实践
    查看>>
    PHP加速器eaccelerator导致php-fpm进程卡死原因分析
    查看>>
    PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
    查看>>
    php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
    查看>>
    PHP去掉转义符
    查看>>
    php去除字符串开头或末尾的字符(例如逗号)
    查看>>
    php反射api
    查看>>
    PHP反射ReflectionClass、ReflectionMethod 入门教程
    查看>>
    PHP反射机制
    查看>>
    php取当天的最后一秒_Docker快速搭建PHP开发环境详细教程
    查看>>
    php取绝对值
    查看>>
    PHP变量内容的获取
    查看>>