shell编程系列1--shell脚本中的变量替换

变量替换总结:
、${变量#匹配规则} # 从头开始匹配,最短删除
、${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) 、${变量%匹配规则} # 从尾开始匹配,最短删除
、${变量%%匹配规则} # 从尾开始匹配,最长删除(贪婪模式) 、${变量/旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,只替换第一个
、${变量//旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,全部替换 variable_1="i love you,do you love me" 举例: [root@localhost ~]# variable_1="i love you,do you love me"
[root@localhost ~]# echo $variable_1
i love you,do you love me # 从头开始删除,只删除第一个ov及ov以前的字符串
[root@localhost ~]# var1=${variable_1#*ov}
[root@localhost ~]# echo $var1
e you,do you love me # 从头开始删除,最长删除ov及ov以前的字符串
[root@localhost ~]# var2=${variable_1##*ov}
[root@localhost ~]# echo $var2
e me # 从尾部删除最短匹配的ov及ov后面的字符串
[root@localhost ~]# var3=${variable_1%ov*}
[root@localhost ~]# echo $var3
i love you,do you l # 从尾部删除最长匹配的ov及ov后面的字符串
[root@localhost ~]# var4=${variable_1%%ov*}
[root@localhost ~]# echo $var4
i l # 替换第一个小写的bin为大写的BIN
[root@localhost ~]# echo $PATH
/usr/local/go/bin:/data/golang_project/bin:/usr/java/jdk1..0_181-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# var5=${PATH/bin/BIN}
[root@localhost ~]# echo $var5
/usr/local/go/BIN:/data/golang_project/bin:/usr/java/jdk1..0_181-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # 替换所有小写的bin为大写的BIN
[root@localhost ~]# var6=${PATH//bin/BIN}
[root@localhost ~]# echo $var6
/usr/local/go/BIN:/data/golang_project/BIN:/usr/java/jdk1..0_181-amd64/BIN:/usr/local/sBIN:/usr/local/BIN:/usr/sBIN:/usr/BIN:/root/BIN

shell编程系列1--shell脚本中的变量替换的更多相关文章

  1. shell编程系列26--大型脚本工具开发实战

    shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_ ...

  2. shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

  3. shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计

    shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...

  4. shell编程系列6--shell中的函数

    shell编程系列6--shell中的函数 .函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 第一种格式 name() ...

  5. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  6. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

  7. shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句

    shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句条件语句 if(条件表达式) 动作1 else if(条件表达式) 动作2 else 动 ...

  8. shell编程系列17--文本处理三剑客之awk动作中的表达式用法

    shell编程系列17--文本处理三剑客之awk动作中的表达式用法 awk动作表达式中的算数运算符 awk动作中的表达式用法总结: 运算符 含义 + 加 - 减 * 乘 / 除 % 模 ^或** 乘方 ...

  9. shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容

    shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /p ...

随机推荐

  1. 使用BERT模型生成句子序列向量

    之前我写过一篇文章,利用bert来生成token级向量(对于中文语料来说就是字级别向量),参考我的文章:<使用BERT模型生成token级向量>.但是这样做有一个致命的缺点就是字符序列长度 ...

  2. opencv摄像头读取图片

    # 摄像头捕获图像或视频import numpy as np import cv2 # 创建相机的对象 cap = cv2.VideoCapture(0) while(True): # 读取相机所拍到 ...

  3. windows 10 下部署WCF 一些细节

    总体上在IIS中部署一个WCF服务和Win7没有什么区别 但是,如果你使用的是.NET 4.5开发的 WCF服务,而windows10 又安装了.net 4.7 那么你需要注意下面问题

  4. python打造漏洞数据导出工具

    功能 [x] 支持导出的数据:IP地址.漏洞名称.风险等级.整改建议.漏洞描述.漏洞CVE编号.漏洞对应端口.漏洞对应协议.漏洞对应服务等. [x] 导出不同端口的同一个漏洞,也就是一个端口对应一个漏 ...

  5. Union-Find(并查集): Union-Find Application

    Union-find 可以应用在很多方面 之前我们看到了union-find在dynamic connectivity上的应用,接下来介绍它在percolation上的应用. union-find在K ...

  6. MongoDB 常用操作命令大全

    一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help() ...

  7. bzoj 3829: [Poi2014]FarmCraft 树形dp+贪心

    题意: $mhy$ 住在一棵有 $n$ 个点的树的 $1$ 号结点上,每个结点上都有一个妹子. $mhy$ 从自己家出发,去给每一个妹子都送一台电脑,每个妹子拿到电脑后就会开始安装 $zhx$ 牌杀毒 ...

  8. Qt智能指针QPointer, QSharedDataPointer ,QSharedPointer,QWeakPointer和QScopedPointer

    QPointer (4.0) 已经过时,可以被QWeakPointer所替代,它不是线程安全的. QSharedDataPointer (4.0) -- 提供对数据的COPY-ON-WRITE以及浅拷 ...

  9. editplus 支持lua语言语法高亮显示

    找到自己的安装目录 建一个这个名字的文件 里面写上 #TITLE=LUA ; LUA syntax file written by ES-Computing. ; This file is requi ...

  10. C的realloc的动态分配扩展和缩小内存

    #include <stdio.h> #include <stdlib.h> void out(int *p, int n){ int i; for(i=0;i<n;i+ ...