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

    你可能感兴趣的文章
    node模块的本质
    查看>>
    node环境下使用import引入外部文件出错
    查看>>
    Node的Web应用框架Express的简介与搭建HelloWorld
    查看>>
    Node第一天
    查看>>
    node编译程序内存溢出
    查看>>
    Node读取并输出txt文件内容
    查看>>
    node防xss攻击插件
    查看>>
    noi 1996 登山
    查看>>
    noi 7827 质数的和与积
    查看>>
    NOI-1.3-11-计算浮点数相除的余数
    查看>>
    NOI2010 海拔(平面图最大流)
    查看>>
    NOIp2005 过河
    查看>>
    NOIP2011T1 数字反转
    查看>>
    NOIP2014 提高组 Day2——寻找道路
    查看>>
    noip借教室 题解
    查看>>
    NOIP模拟测试19
    查看>>
    NOIp模拟赛二十九
    查看>>
    Vue3+element plus+sortablejs实现table列表拖拽
    查看>>
    Nokia5233手机和我装的几个symbian V5手机软件
    查看>>
    Non-final field ‘code‘ in enum StateEnum‘
    查看>>