zoukankan      html  css  js  c++  java
  • shell map使用

    # 定义初始化map
    declare -A map=(["100"]="1" ["200"]="2")
    
    # 输出所有key
    echo ${map[@]}
    
    # 输出key对应的值
    echo ${map["100"]}
    
    # 遍历map
    for key in ${!map[@]}
    do
        echo ${map[${key}]}
    done
    #!/bin/bash
    #********************************************************************#
    ##author:郭昊
    ##create time:2019-04-03 14:09:17
    #********************************************************************#
    source /webser/odps/shell/odps.sh
    
    ### 定义变量
    confSql="select concat_ws('|',check_id,check_desc,type,sql_txt) as flag from check_erroer_data_config where is_deleted = 0"
    typeMap=(["a"]="1" ["b"]="2" ["c"]="3" ["d"]="4" ["e"]="5")
    
    ### 主函数
    main(){
        # 清空结果表历史数据
        db_query_retant "bigdata_db" "truncate table check_erroer_data_result"
    
        # 遍历配置表里的记录
        db_query_retant "bigdata_db" "${confSql}"|sed '1d'|while read line
        do
            check_id=$(echo ${line}|awk -F'|' '{print $1}')
            check_desc=$(echo ${line}|awk -F'|' '{print $2}')
            type=$(echo ${line}|awk -F'|' '{print $3}')
            sql_txt=$(echo ${line}|awk -F'|' '{print $4}')
    
            # 处理单引号
            sql=$(echo ${sql_txt}|sed "s/'/''/g")
    
            # 处理执行语句
            sql_excute=$(echo ${sql_txt}|sed "s/select/select ${check_id} as check_id,'${check_desc}' as check_desc,'${type}' as type,'${sql}' as sql_txt,DATABASE() as db_name,/i")
            echo "${sql}"
            echo "${sql_excute}"
    
            # 获取key对应的值
            typeTenants=${typeMap[${type}]}
    
            # 统计异常数据量
            if [ "${typeTenants}" != "" ]
            then
                if [ "${type}" == "gcxt" ]
                then
                    upload_1 "${typeTenants}" "${sql_excute}" "check_id,check_desc,type,sql_txt,db_name,error_cnt" "check_erroer_data_result" "bigdata_db" 0
                else
                    upload_2 "${typeTenants}" "${sql_excute}" "check_id,check_desc,type,sql_txt,db_name,error_cnt" "check_erroer_data_result" "bigdata_db" 0
                fi
            else
                echo "[ERROR] Type: [ ${type} ] not match,Please check again"
            fi
        done
    
        # 删除正常的记录
        db_query_retant "bigdata_db" "delete from check_erroer_data_result where error_cnt = 0"
    }
    
    ### 运行主函数
    main
    -- 表结构设计
    use bigdata_db;
    -- 配置表
    drop table check_erroer_data_config;
    create table check_erroer_data_config(
         check_id     tinyint       primary key auto_increment comment '检查项序号'
        ,check_desc   varchar(500)  not null                   comment '检查项描述'
        ,type         varchar(100)  not null                   comment '检查项类型'
        ,sql_txt      varchar(1000) not null                   comment '检查SQL'
        ,is_deleted   tinyint       default 0                  comment '是否已删除'
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='业务异常数据巡检配置表'
    ;
    
    -- 结果表
    drop table check_erroer_data_result;
    create table check_erroer_data_result(
         check_id     tinyint       not null                           comment '检查项序号'
        ,check_desc   varchar(500)  not null                           comment '检查项描述'
        ,type         varchar(100)  not null                           comment '检查项类型'
        ,db_name      varchar(50)   not null                           comment '检查数据库名'
        ,sql_txt      varchar(1000) not null                           comment '检查SQL'
        ,error_cnt    int(11)       default 0                          comment '异常记录数'
        ,update_time  timestamp     DEFAULT CURRENT_TIMESTAMP not null comment '更新时间'
        ,primary key(db_name,check_id)
        ,KEY `ix_error_cnt` (`error_cnt`)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='业务异常数据巡检结果表'
    ;
  • 相关阅读:
    自己的思考
    spring MVC整合freemarker
    手把手教你搭建SpringMVC——最小化配置
    深入hibernate的三种状态
    maven 构建slf4j1.7.7之简单测试与源码解析
    maven 构建slf4j1.7.7之简单测试与源码解析
    (转)URI和URL的区别
    Spring缓存机制的理解
    (转)oracle 高水位线详解
    (转)PL/SQL Developer使用技巧、快捷键
  • 原文地址:https://www.cnblogs.com/chenzechao/p/10649794.html
Copyright © 2011-2022 走看看