• 变量(字符串)变换
定义一个变量t,内容为framE
[root@vm1 tmp]# t=framE 查看变量t的内容:echo $t或者是echo ${t}
[root@vm1 tmp]# echo $t
framE
[root@vm1 tmp]# 将变量t的首字母大写:echo ${t^}
[root@vm1 tmp]# echo ${t^}
FramE
[root@vm1 tmp]# 将变量t的所有字母大写:echo ${t^^}
[root@vm1 tmp]# echo ${t^^}
FRAME
[root@vm1 tmp]# 将变量t的首字母小写:echo ${t,}
[root@vm1 tmp]# echo ${t,}
framE
[root@vm1 tmp]# 将变量t的所有字母小写:echo ${t,,}
[root@vm1 tmp]# echo ${t,,}
frame
[root@vm1 tmp]# 将变量t的首字母大小写切换:echo ${t~}
[root@vm1 tmp]# echo ${t~}
FramE
[root@vm1 tmp]# 将变量t的所有字母大小写切换:echo ${t~~}
[root@vm1 tmp]# echo ${t~~}
FRAMe
[root@vm1 tmp]# 总结: ^:首字母大写
^^:所有字母大写
,:首字母小写
,,:所有字母小写
~:首字母大小写切换
~~:所有字母大小写切换
  • 移除匹配的字符串
定义一个变量filename,该变量的值为pwd所对应的当前路径
[root@vm1 network-scripts]# filename="$(pwd)"
[root@vm1 network-scripts]# echo $filename
/etc/sysconfig/network-scripts
[root@vm1 network-scripts]# 从前往后删,删除掉最短的一个"/"
[root@vm1 network-scripts]# echo ${filename#*/}
etc/sysconfig/network-scripts
[root@vm1 network-scripts]# 从前往后删,删除掉最长的一个"/"
[root@vm1 network-scripts]# echo ${filename##*/}
network-scripts
[root@vm1 network-scripts]# 从后往前删,删除掉最短的一个"/"
[root@vm1 network-scripts]# echo ${filename%/*}
/etc/sysconfig
[root@vm1 network-scripts]# 从后往前删,删除掉最短的一个"/"
[root@vm1 network-scripts]# echo ${filename%%/*} [root@vm1 network-scripts]# #:从前往后删,删除掉最短的一个
##:从前往后删,删除掉最长的一个
%:从后往前删,删除掉最短的一个
%%:从后往前删,删除掉最长的一个
  • 查找与替换
查看变量filename的内容:
[root@vm1 network-scripts]# echo $filename
/etc/sysconfig/network-scripts
[root@vm1 network-scripts]# 将第一次出现的小写s替换成大写的S
[root@vm1 network-scripts]# echo ${filename/s/S}
/etc/Sysconfig/network-scripts
[root@vm1 network-scripts]# 将所有的小写s替换成大写的S
[root@vm1 network-scripts]# echo ${filename//s/S}
/etc/SySconfig/network-ScriptS
[root@vm1 network-scripts]# 总结:
/match/value:将第一次出现的match地换成value
//match/value:将所有的match替换成value
  • 其他字符串的操作符
查询字符串的长度:echo {#filename}
[root@vm1 network-scripts]# echo ${#filename} [root@vm1 network-scripts]# 字符串切片操作:${filename:offset:length} offset从0开始
[root@vm1 network-scripts]# echo ${filename::}
sysconfig
[root@vm1 network-scripts]#

原始出处:http://hezhanglinux.blog.51cto.com/10861477/1711388

最新文章

  1. UITextField 的限制输入金额(可为小数的正确金额)
  2. php for循环建数据
  3. iOS腾讯百度面试题
  4. Android_进化史和平台架构介绍
  5. uitabbarcontroller中 在设置tab bar item的image属性后不显示问题
  6. Ansible状态管理
  7. 安装 M2eclipse 插件
  8. 基于Httpfs访问HDFS的C++实现
  9. 在 Ubuntu 16.04 中安装谷歌 Chrome 浏览器
  10. jQuery 遍历过滤
  11. (转)在Repeater中嵌套使用Repeater
  12. Codeforces Round #272 (Div. 1) Problem C. Dreamoon and Strings
  13. QtInternal 之 高效使用QString(使用QLatin1String,QStringRef,QStringBuilder,QStringMatcher等相关类)
  14. python流程控制:while循环
  15. C++标准库string
  16. [面经]杭州某初创公司FPGA工程师实习
  17. form的submit()方法不能触发onsubmit事件的解决方法,兼容各版本浏览器。
  18. Matplotlib中柱状图bar使用
  19. SAP Fiori Client
  20. 常用文本编辑器 editor 的常用插件 —— CopyEdit

热门文章

  1. 夯实Java基础系列22:一文读懂Java序列化和反序列化
  2. jdbc 以及 事务的java类编写
  3. react16 路由按需加载、路由权限配置
  4. 全面系统Python3入门+进阶课程 ✌✌
  5. Python_函数传参
  6. Mysql多数据库备份
  7. macbook使用美化工具在屏幕展示出常查信息
  8. 《FFT家族—从不会到崩溃(坑)》读blog笔记
  9. Cocos2d-x 学习笔记(11.5) SkewTo SkewBy
  10. docker1-centos上安装docker