shell变量
2023-09-27 14:21:15 时间
01、字符串替换"/" 和"//"
单个"/"只会替换首个匹配到的字符串:{var/old/new} 如果需要替换所有匹配到的字符,应该通过${var//old/new} [root@ ~]# net='www.baidu.com.www.com' You have new mail in /var/spool/mail/root [root@ ~]# echo $net www.baidu.com.www.com [root@~]# echo ${net/ww/tt} ttw.baidu.com.www.com [root@ ~]# echo ${net//ww/tt} ttw.baidu.com.ttw.com
除此之外,还有两种专门针对字符串开头和结尾的替换方式
只替换开头匹配的字符串${var/#pattern/sub}
只替换结尾匹配的字符串${var/%pattern/sub}
02、删除字符串
删除字符串
其实学会了替换字符串删除字符串就更简单了,只需将替换部分写成空即可,即${variable/pattern/null},例如将net的第一个.删除,只需 [Neptuneyt]$ echo ${net/./} wwwbaidu.com [Neptuneyt]$ echo ${net/.} #最后一个/可以不用写 wwwbaidu.com
若要删除所有匹配到的只需即${variable//pattern},例如将net的.都删除,只需 [Neptuneyt]$ echo ${net//.} wwwbaiducom
同理,只删除开头或者结尾匹配到的字符也是类似操作,这里就不赘述了。
03、字符串长度
想要知道"www.baidu.com"的变量net的长度十分简单,通过${#net}即可获取。 [root@ ~]# net=`netstat -ntpl|grep mysqld|grep LISTEN|awk '{print $4}' |grep ":${my_port}$"` You have mail in /var/spool/mail/root [root@ ~]# echo $net :::3308 [root@ ~]# echo ${#net} 7 [root@ ~]#
04、字符串截取
$ net="www.baidu.com" $ # 从第4个字符截取到baidu $ echo ${net:4:5} #从第4个字符.开始截取5个字符 baidu $ # 截取baidu.com $ echo ${net:4} #起始位置后不接截取字符长度则默认截取之后所有的 baidu.com $ # 用倒数截取com $ echo ${net:0-3} #从倒数第三个字符截取到末尾 com
相关文章
- Shell 变量
- 全局变量、局部变量和静态变量的说明
- 第三十三章 Caché 变量大全 $ZMODE 变量
- awk 系列:如何让 awk 使用 Shell 变量
- Shell变量
- C#开发Unity游戏教程之使用脚本变量
- Shell变量
- 《提高转化率!网页A/B测试与多变量测试实战指南》一1.3 创建测试计划
- SHELL脚本--变量(基础)
- shell变量及相关命令
- SwiftUI 动画小技巧之指定动画根据特定变量更新视图
- 【Java入门】常量和变量
- 1.shell编程-变量的高级用法
- shell判断一个变量是否为空
- linux shell脚本之-变量极速入门与进阶(1)
- Linux shell中一些参数与变量简介
- laravel在中间件内生成的变量如何传到控制器