- propertis文件中,取等号右边,并去掉空格:
例如server.port = 8080,要取8080
machineIp=`cat config.properties | grep "server.port" | awk -F "=" '{print $2}' | awk '{gsub(/^\s+|\s+$/, "");print}'`
- 取出(后面的内容
processTemp=${processStr#*(}
具体用法参见:
https://blog.csdn.net/JineD/article/details/124196546
- 取出包含off内容的行号,head -1是只取出第一个包含off的行数
row=`cat nginx.conf | grep -n "off" | awk -F ":" '{print $1}' | head -1`
- 取出这一行中的数据
offInfo=`head -$row nginx.conf | tail -n 1`
给这一行中的数据去除空格文章来源:https://www.toymoban.com/news/detail-424507.html
echo $offInfo | awk '{gsub(/^\s+|\s+$/, "");print}' > $1/install.log 2>&1
- 在${row}这一行添加# off(会替换原有内容)
sed -i "${row}c # off" $2/conf/nginx.conf
- 在第i行内容前面加上"#"
sed -i "$i{s/^/#/}" /conf/nginx.conf
- 第一个字符是否为"#"(cut -c -1表示取第一个字符),如果为#,则返回值为#,否则为空
cut -c -1 $SH_PATH/install.log | grep -w '#'
- 如果即将要被插入的参数中包含"/"(即为路径格式),则需要进行转义:
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}文章来源地址https://www.toymoban.com/news/detail-424507.html
sed -i "s/needInsert/${new_sed}/g" $file
- 在${insertNeedModifyRow}后面一行加入- test.log这个内容,并且前面还有空格。空格用""开始,光敲空格,插入的时候是不会有空格的
a表示在这一行后面插入,i表示在这一行前面插入
sed -i "${insertNeedModifyRow}a \ - test.log" $1
- uniq表示去除同一个文件里重复的内容(只有相邻的才能去重,不相邻的是不能去重的)
uniq filebeat.yml > $SH_PATH/output.txt
- (1)插入的内容中,如果包含传参,则使用单引号’'将参数包裹,否则传参将会作为字符串插进去
(2)将test.sh这个脚本中以curl开头的字符串替换成后面的一串
其中c\表示将当前sed查找到的一行全部替换成我们指定的TEXT
sed -i '/curl*/c\curl http://'$ip':'$port'/${time} -X DELETE' test.sh
- 统计install.log中包含running的行数,其中wc -l表示统计行数
count=`grep -o 'running' $SH_PATH/install.log | wc -l`
- 识别用户输入了啥,-p表示设置提示信息
read -p "现在需要你输入,输入Y/N:" result
echo "你输入的为: $result"
到了这里,关于shell脚本中用法_遇到的坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!