zoukankan      html  css  js  c++  java
  • Linux中shell字符串分隔、字符串替换、字符串拼接

    1、从properties文件中读取变量

    SERVER_NAME=`sed '/project.config/!d;s/.*=//' conf/dubbo.properties | tr -d ' '`

    说明

    key=project.config,文件名:conf/dubbo.properties

    2、字符串替换

    ${变量/查找/替换值} 一个'/'表示替换第一个'//'表示替换所有,当查找出中出现了一些需要转义的需要加上:"/"需要转移成"/","#"需要转移成"#"

    var=analy#analy.properties

    echo ${var/#/=}

    输出是:analy=analy.properties

    3、字符串拼接

    #!/bin/bash
    name="Shell"
    str="Test"
    str1=$name$str #中间不能有空格
    str2="$name $str" #如果被双引号包围,那么中间可以有空格
    str3=$name": "$str #中间可以出现别的字符串
    str4="$name: $str" #这样写也可以
    str5="${name}Script: ${str}" #这个时候需要给变量名加上大括号
    echo $str1
    echo $str2
    echo $str3
    echo $str4
    echo $str5
    运行结果:
    ShellTest
    Shell Test
    Shell: Test
    Shell: Test
    ShellScript: Test

    4、字符串按“,”分隔

    #!/bin/bash
    string="hello,shell,haha"
    array=(${string//,/ })
    for var in ${array[@]}
    do
    echo $var
    done

    5、综合应用

    #!/bin/bash
    cd `dirname $0`
    BIN_DIR=`pwd`
    cd ..

    SERVER_NAME=`sed '/project.config/!d;s/.*=//' conf/dubbo.properties | tr -d ' '`

    JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"

    array=(${SERVER_NAME//,/ })
    for var in ${array[@]}
    do
    JAVA_OPTS="$JAVA_OPTS -D${var/#/=}"
    echo $var
    done

    echo $JAVA_OPTS

  • 相关阅读:
    6.1成果(冲刺2.10)
    5.31成果(冲刺2.9)
    5.30成果(冲刺2.8)
    5.29成果(冲刺2.7)
    5.28成果(冲刺2.6)
    5.27成果(冲刺2.5)
    5.26成果(冲刺2.4)
    5.25成果(冲刺2.3)
    Nginx location匹配后 跳转问题
    记一次centos上发布core,访问502的bug
  • 原文地址:https://www.cnblogs.com/wuac/p/11121709.html
Copyright © 2011-2022 走看看