1. shell编程系列1--shell脚本中的变量替换
  2.  
  3. 变量替换总结:
  4. ${变量#匹配规则} # 从头开始匹配,最短删除
  5. ${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式)
  6.  
  7. ${变量%匹配规则} # 从尾开始匹配,最短删除
  8. ${变量%%匹配规则} # 从尾开始匹配,最长删除(贪婪模式)
  9.  
  10. ${变量/旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,只替换第一个
  11. ${变量//旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,全部替换
  12.  
  13. variable_1="i love you,do you love me"
  14.  
  15. 举例:
  16.  
  17. [root@localhost ~]# variable_1="i love you,do you love me"
  18. [root@localhost ~]# echo $variable_1
  19. i love you,do you love me
  20.  
  21. # 从头开始删除,只删除第一个ov及ov以前的字符串
  22. [root@localhost ~]# var1=${variable_1#*ov}
  23. [root@localhost ~]# echo $var1
  24. e you,do you love me
  25.  
  26. # 从头开始删除,最长删除ov及ov以前的字符串
  27. [root@localhost ~]# var2=${variable_1##*ov}
  28. [root@localhost ~]# echo $var2
  29. e me
  30.  
  31. # 从尾部删除最短匹配的ov及ov后面的字符串
  32. [root@localhost ~]# var3=${variable_1%ov*}
  33. [root@localhost ~]# echo $var3
  34. i love you,do you l
  35.  
  36. # 从尾部删除最长匹配的ov及ov后面的字符串
  37. [root@localhost ~]# var4=${variable_1%%ov*}
  38. [root@localhost ~]# echo $var4
  39. i l
  40.  
  41. # 替换第一个小写的bin为大写的BIN
  42. [root@localhost ~]# echo $PATH
  43. /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
  44. [root@localhost ~]# var5=${PATH/bin/BIN}
  45. [root@localhost ~]# echo $var5
  46. /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
  47.  
  48. # 替换所有小写的bin为大写的BIN
  49. [root@localhost ~]# var6=${PATH//bin/BIN}
  50. [root@localhost ~]# echo $var6
  51. /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. 云计算/云存储---Ceph和Openstack的cinder模块对接方法

    1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...

  2. 一种使用gitlab的CI/CD功能实现Nginx配置更新的方法

    至于nginx的docker制作,前面已介绍过. 现在使用gitlab在线编辑的方式,可实现Nginx的自定义配置并更新. .gitlab-ci.yml内容如下: variables: project ...

  3. Eclipse的tab键为4个空格完整方法 附:阿里代码开发规范书

    开发规范书:http://pan.baidu.com/s/1dESdyox 1.点击 window->preference-,依次选择 General->Editors->Text ...

  4. python的种类有哪些?

    CPython 当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython.这个解释器是用C语言开发的,所以叫CPython.在命令行下运行p ...

  5. LightOJ - 1299 - Fantasy Cricket(DP, 数学)

    链接: https://vjudge.net/problem/LightOJ-1299 题意: 考虑成,U位置的点要往后放,D位置往前放 Dp[i][j]表示处于i位置,还有j个U没有放下. s[i] ...

  6. pycharm注册使用

    先在PyCharm官网下载安装包 链接:https://www.jetbrains.com/pycharm/download/#section=linux 选择平台为Linux,可以看到当前版本为20 ...

  7. 任晓蕊 2019-2020-1 20199302《Linux内核原理与分析》第四周作业

    实验内容 在实验楼的环境中敲入命令 cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img ...

  8. 015——C#软件出现《未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"》

    (一)参考文献:https://zhidao.baidu.com/question/361243661437448812.html https://blog.csdn.net/yyx3214/arti ...

  9. 2019 icpc 徐州 解题报告

    A.Cat 题库链接 给定区间[l,r],求一个最长子区间,使得区间异或和小于等于s,(结论)偶数和偶数后三个数的异或和等于0 #include <bits/stdc++.h> using ...

  10. learning java Runtime 类 获取内存及处理器核数信息

    var rt = Runtime.getRuntime(); System.*)); System.*)); System.*)); System.out.println(rt.availablePr ...