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


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM