zoukankan      html  css  js  c++  java
  • linux shell的一些技巧

    先上例子:

    一个文档内容:

    [root@cong-33 ~]# cat /data/public_jdbh/sh/conf/test.json 
    {
        "value1" :SERVERID,
        "value1":"NAME",
        "value1":IDNUM,
        "value1" : "TIME","GameDBUrl" : "MYSQL_USER;MYSQL_PASSWD;USER_DB;MYSQL_HOST;MYSQL_PORT",
        "LogDBUrl" : "MYSQL_USER;MYSQL_PASSWD;OTHER_DB;MYSQL_HOST;MYSQL_PORT",
    }

    shell脚本:

    #!/bin/bash

    DIRNAME=/tmp
    CONFIGFILE=test.json

    SERVERID=222
    NAME="test"
    IDNUM=333
    TIME="2017-12-11 10:10:10"
    MYSQL_USER="root"
    MYSQL_PASSWD="123456"
    MYSQL_PORT=3306
    USER_DB=user
    OTHER_DB=other


    for OPTION in {"SERVERID","NAME","IDNUM","TIME","MYSQL_USER","MYSQL_PASSWD","USER_DB","MYSQL_HOST","MYSQL_PORT","OTHER_DB"} do sed -r -i 's@'"${OPTION}"'@'"${!OPTION}"'@g' ${DIRNAME}/${CONFIGFILE} done

    执行:

    [root@cong-33 tmp]# sh test.sh  
    [root@cong-33 tmp]# cat test.json 
    {
        "value1" :222,
        "value1":"test",
        "value1":333,
        "value1" : "2017-12-11 10:10:10",
        "GameDBUrl" : "root;123456;user;;3306",
        "LogDBUrl" : "root;123456;other;;3306",
    }
    [root@cong-33 tmp]#

    解说:

         

    for OPTION in {"SERVERID","NAME","IDNUM","TIME","MYSQL_USER","MYSQL_PASSWD","USER_DB","MYSQL_HOST","MYSQL_PORT","OTHER_DB"}
        do
            sed -r -i 's@'"${OPTION}"'@'"${!OPTION}"'@g' ${DIRNAME}/${CONFIGFILE}
    
    ##OPTION变量的内容就是 {"SERVERID","NAME","IDNUM","TIME","MYSQL_USER","MYSQL_PASSWD","USER_DB","MYSQL_HOST","MYSQL_PORT","OTHER_DB"}。这些字符串要与文档test.json中的一致。
    ##然后使用sed匹配到option在文档的内容,
    ##然后把${!OPTION} 的值替换为option的内容。
    ##${!OPTION}变量的值就是OPTION的值的变量的内容

    例子2:

    [root@cono-49 tmp]# a=(1 2 3 4)
    [root@cono-49 tmp]# echo ${a[2]}
    3[root@cono-49 tmp]# echo ${a[@]} 
    1 2 3 4
    [root@cono-49 tmp]# echo ${!a[@]}
    0 1 2 3
    [root@cono-49 tmp]# echo ${a[@]} 
    1 2 3 4
    [root@cono-49 tmp]# echo ${!a[@]}
    0 1 2 3

    ##使用${!a[@]} 可以得到数组的下标

    
    
    
  • 相关阅读:
    《超越自己》--刘墉
    《菊与刀》--[美]鲁思·本尼迪克特(Ruth Benedict)
    《暧昧的日本人》--李兆忠
    《女性的选择》--[日]今野由梨
    《懂得低头,才能出头》--李艳
    原来还有这样的记词方法_Java版记不规则动词_博主推荐
    《永不止步》--[奥]力克胡哲
    C#面向服务WebService从入门到精通
    C# Windows服务开发从入门到精通
    sql server递归查询
  • 原文地址:https://www.cnblogs.com/LYCong/p/8004769.html
Copyright © 2011-2022 走看看