Bash 内置高效特性
- 变量(字符串)变换
定义一个变量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
Bash 内置高效特性的更多相关文章
- BASH内置变量
BASH内置变量 ().BASH 作用:bash的完整路径.默认为/bin/bash ().BASH_ENV 作用:仅在非交互模式中适用.在执行shell脚本时,会先检查该变量是否指定了启动 脚本,若 ...
- Bash内置命令exec和重定向
Bash内置命令exec可以替换当前程序而不需要启动一个新的进程,可以改变标准输入和输出而不需要启动一个新的子进程.如果文件用exec打开,read命令就会把文件指针每次指向下一行直到文件的末尾,如果 ...
- bash内置命令的特殊性,后台任务的"本质"
本文解释bash内置命令的特殊性.前台.后台任务的"本质",以及前.后台任务和bash进程.终端的关系.网上没类似的资料,所以都是自己的感悟和总结,如有错误,120分的期待盼请指正 ...
- Bash内置命令
Bash有很多内置命令,因为这些命令是内置的,因此bash不需要在磁盘上为它们定位,执行速度更快. 1)列出所有内置命令列表$enable 2)关闭内置命令test$enable -n test 3) ...
- bash内置命令mapfile:读取文件内容到数组
bash提供了两个内置命令:readarray和mapfile,它们是同义词.它们的作用是从标准输入读取一行行的数据,然后每一行都赋值给一个数组的各元素.显然,在shell编程中更常用的是从文件.从管 ...
- 常见 Bash 内置变量介绍
目录 $0$1, $2 等等$#$* 与 "$*"$@ 与 "$@"$!$_$$$PPID$?$BASH$BASH_VERSION$EUID 与 $UID$GR ...
- Linux bash内置命令集
man cd -->查询不到,所以会提示bash的内置命令 . alias bg bind break builtin caller cd command compgen complete c ...
- 哪一个 bash 内置命令能够进行数学运算?
bash shell 的内置命令 let 可以进行整型数的数学运算. #! /bin/bash--let c=a+b--
- 哪一个 bash 内置命令能够进行数学运算?
bash shell 的内置命令 let 可以进行整型数的数学运算. #! /bin/bash - - let c=a+b - -
随机推荐
- SOFAJRaft—初次使用
SOFAJRaft-初次使用 SOFAJRaft 是基于 Raft 算法的生产级高性能 Java 实现,支持 MULTI-RAFT-GROUP.应用场景有 Leader 选举.分布式锁服务.高可靠的元 ...
- flask+阿里云短信服务实现注册发送手机验证码
效果图: 该效果主要讲解实现通过调用阿里云的SDK实现发送注册验证码短信(阿里云短信付费使用) 购买阿里云短信服务 购买链接:https://www.aliyun.com/product/sms 1. ...
- Java基础学习(七) - 异常处理
1.异常概念 异常指的是程序在执行过程中出现的非正常的情况,导致JVM的非正常停止.在Java中,异常是一个类,产生异常就是创建异常对象并抛出一个异常对象. 异常指的并不是语法错误,语法错误,编译不会 ...
- spring boot通过Jedis来操作redis
idea中新建spring boot项目,引入jedis依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> ...
- 06-01 DeepLearning-图像识别
目录 深度学习-图像识别 一.人脸定位 二.手工提取特征的图像分类 2.1 识图认物 2.2 传统分类系统的特征提取 2.3 计算机眼中的图像 2.4 什么是图像特征? 2.5 卷积运算 2.6 利用 ...
- Embarrassment
I don't know what I did wrong, why do I take care of me? I did something wrong before, your parents ...
- HTML块元素与内联元素嵌套规则
HTML存在许多种类型的标签,有的标签下面只允许特定的标签存在,这就叫HTML嵌套规则.不按HTML嵌套规则写,浏览器就不会正确解析,会将不符合嵌套规则的节点放到目标节点的下面,或者变成纯文本.关于H ...
- Kubernetes+Docker+Istio 容器云实践
随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求.近年来,互联网.移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的容器云 ...
- 设计模式常见面试知识点总结(Java版)
设计模式 这篇总结主要是基于我设计模式系列的文章而形成的的.主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点.谢谢 更多详细内容可以到我的cdsn博客上查看: https:// ...
- Qt5教程: (2) 信号与槽
1. 新建工程 新建一个"Qt Widgets Application"工程 2. 添加按钮 一个Qt工程会有很多个控件, 如果把逻辑代码都写在main函数里, main函数会非常 ...