博客
关于我
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/

    你可能感兴趣的文章
    Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
    查看>>
    Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?
    查看>>
    power english (3) main text -emotion mastery - focus
    查看>>
    POWER ENGLISH (6) - MODEL
    查看>>
    power english (1) —— passion
    查看>>
    Power English (1) 原文
    查看>>
    power English (3)原文
    查看>>
    POWER ENGLISH(7)- repetition
    查看>>
    SpringBoot中集成SpringBatch详细解析与实战示例(CSV文件读取十万条数据进行业务处理后写入Mysql数据库)
    查看>>
    powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
    查看>>
    QGIS怎样设置简体中文以及新建可编辑的多边形的图层
    查看>>
    PowerBuilder 使用自定义事件触发键盘Enter事件
    查看>>
    PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
    查看>>
    PowerDesigner 使用的一些技巧(转)
    查看>>
    QGIS在Windows上下载安装与建立空间数据库连接
    查看>>
    PowerDesigner165安装婆姐汉花教程
    查看>>
    PowerDesigner使用教程:设置注释、默认值属性
    查看>>
    PowerDesigner使用教程:不显示背景网格
    查看>>
    PowerDesigner使用教程:创建数据模型以及导出
    查看>>
    PowerDesigner使用教程:右侧工具栏显示/隐藏
    查看>>