- propertis文件中,取等號(hào)右邊,并去掉空格:
例如server.port = 8080,要取8080
machineIp=`cat config.properties | grep "server.port" | awk -F "=" '{print $2}' | awk '{gsub(/^\s+|\s+$/, "");print}'`
- 取出(后面的內(nèi)容
processTemp=${processStr#*(}
具體用法參見:
https://blog.csdn.net/JineD/article/details/124196546
- 取出包含off內(nèi)容的行號(hào),head -1是只取出第一個(gè)包含off的行數(shù)
row=`cat nginx.conf | grep -n "off" | awk -F ":" '{print $1}' | head -1`
- 取出這一行中的數(shù)據(jù)
offInfo=`head -$row nginx.conf | tail -n 1`
給這一行中的數(shù)據(jù)去除空格文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-424507.html
echo $offInfo | awk '{gsub(/^\s+|\s+$/, "");print}' > $1/install.log 2>&1
- 在${row}這一行添加# off(會(huì)替換原有內(nèi)容)
sed -i "${row}c # off" $2/conf/nginx.conf
- 在第i行內(nèi)容前面加上"#"
sed -i "$i{s/^/#/}" /conf/nginx.conf
- 第一個(gè)字符是否為"#"(cut -c -1表示取第一個(gè)字符),如果為#,則返回值為#,否則為空
cut -c -1 $SH_PATH/install.log | grep -w '#'
- 如果即將要被插入的參數(shù)中包含"/"(即為路徑格式),則需要進(jìn)行轉(zhuǎn)義:
new_sed=$(echo $3 | sed -e 's/\//\\\//g')
將 f i l e 中的 n e e d I n s e r t 全都替換成 file中的needInsert全都替換成 file中的needInsert全都替換成{new_sed}文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-424507.html
sed -i "s/needInsert/${new_sed}/g" $file
- 在${insertNeedModifyRow}后面一行加入- test.log這個(gè)內(nèi)容,并且前面還有空格??崭裼?"開始,光敲空格,插入的時(shí)候是不會(huì)有空格的
a表示在這一行后面插入,i表示在這一行前面插入
sed -i "${insertNeedModifyRow}a \ - test.log" $1
- uniq表示去除同一個(gè)文件里重復(fù)的內(nèi)容(只有相鄰的才能去重,不相鄰的是不能去重的)
uniq filebeat.yml > $SH_PATH/output.txt
- (1)插入的內(nèi)容中,如果包含傳參,則使用單引號(hào)’'將參數(shù)包裹,否則傳參將會(huì)作為字符串插進(jìn)去
(2)將test.sh這個(gè)腳本中以curl開頭的字符串替換成后面的一串
其中c\表示將當(dāng)前sed查找到的一行全部替換成我們指定的TEXT
sed -i '/curl*/c\curl http://'$ip':'$port'/${time} -X DELETE' test.sh
- 統(tǒng)計(jì)install.log中包含running的行數(shù),其中wc -l表示統(tǒng)計(jì)行數(shù)
count=`grep -o 'running' $SH_PATH/install.log | wc -l`
- 識(shí)別用戶輸入了啥,-p表示設(shè)置提示信息
read -p "現(xiàn)在需要你輸入,輸入Y/N:" result
echo "你輸入的為: $result"
到了這里,關(guān)于shell腳本中用法_遇到的坑的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!