1、從properties文件中讀取變量
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