Linux中shell字符串分隔、字符串替换、字符串拼接

1、从properties文件中读取变量
【Linux中shell字符串分隔、字符串替换、字符串拼接】SERVER_NAME=`sed '/project.config/!d; s/.*=//' conf/dubbo.properties | tr -d '\r'`
说明
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 '\r'`
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

转载于:https://www.cnblogs.com/wuac/p/11121709.html

    推荐阅读