4. linux shell 变量扩展:测试存在性及空值

我们在写脚本的时候,必须要使用某个变量,如果这个 变量没有定义的的话,那么我们就要给他强制赋值linux shell shell编程 shell脚本 shell视频

我们可以使用set -u 在使用变量之前先检查是否定义过这个变量,如果没有定义那么就报错

4. linux shell 变量扩展:测试存在性及空值

测试:

${变量-值} 不存在 ,不判断是否为空

如果变量不存在的话,那么就用后面的值来替代

4. linux shell 变量扩展:测试存在性及空值

如果有值的话,就使用自身的值

${变量:-值} 不存在或者空

如果变量存在(不能是空),那么就直接使用这个变量的值,如果变量为未定义或者为空,那么将使用-后面的值

4. linux shell 变量扩展:测试存在性及空值

4. linux shell 变量扩展:测试存在性及空值

${变量:+值} 非空则带入值

如果变量非空的话,那么则带入后面的值

4. linux shell 变量扩展:测试存在性及空值

因为aa有值,所以就会把123赋值给bb

${变量:=值} 不存在或空 默认

如果变量是空或者不存在,那么将把后面的值赋值给变量,而且当成默认值。看到的效果和${变量:-值}效果一样的

4. linux shell 变量扩展:测试存在性及空值

${变量:?’信息’} 不存在或空,显示信息

如果变量不存在或者是空,那么将显示?后面的信息,这个信息要使用‘’引起来

4. linux shell 变量扩展:测试存在性及空值

用来测试一个变量是否被定义过,如果没有定义或者为控制,那么我们可以自定义报错信息。

如果说变量的值是存在的,那么将使用这个值

写一个小脚本,这个脚本后面必须要跟上一个参数,如果没有参数那么就有这样的报错的信息“此脚本 (指定脚本名) 必须要跟上一个参数”

4. linux shell 变量扩展:测试存在性及空值

 

例子:

写个脚本,让你输入自己的年龄,如果输入了年龄,那么就显示年龄,如果没有输入的话,那么这个年龄就显示为‘保密’

4. linux shell 变量扩展:测试存在性及空值

4. linux shell 变量扩展:测试存在性及空值

截取:

有时一个变量的值会很长,但是我们并不需要完整一个值:

aa=123456

${变量:offset} 去除前面几个字符

offset是一个数字n,也就是把变量前n个的值去掉

4. linux shell 变量扩展:测试存在性及空值

就把aa这个变量前面的几个值给去除了

${变量:offset:长度} 去除前几个字符取几位

offset也是一个数字n,长度假设值m,意思就是把这个变量所代表的值的前n部分去除,然后取得生效部分的m个字符

4. linux shell 变量扩展:测试存在性及空值

首先把aa的前两个字符删除,剩下3456,然后取两个字符结果就是34

${变量%模式} 从后最短删除

把这个变量所代表的值从后面开始删,删除匹配%后面的模式

4. linux shell 变量扩展:测试存在性及空值

 

${变量%%模式} 从后最长删除

从后面开始删除,匹配%%后面的模式的内容,而且是尽量长的删

4. linux shell 变量扩展:测试存在性及空值

${#变量} 变量值的长度

用来计算变量所代表值得长度,也就是字符数

4. linux shell 变量扩展:测试存在性及空值

4. linux shell 变量扩展:测试存在性及空值

 

${变量#模式} 从前最短删除

把变量所表示的值前面的删除,删除#后面所匹配的部分,最短删除

4. linux shell 变量扩展:测试存在性及空值

从aa最前面最短匹配的root给删除了

${变量##模式} 从前最长删除

4. linux shell 变量扩展:测试存在性及空值

例子:加入我现在有一个文本,这里面包含了很多个网页的地址,现在要求统计出来这些网站的名的名字:

4. linux shell 变量扩展:测试存在性及空值

4. linux shell 变量扩展:测试存在性及空值

 

${变量/符号1/符号2}替换

这句话的意思是变量中的第一个符号1替换成符号2

4. linux shell 变量扩展:测试存在性及空值

${变量//符号1/符号2}

4. linux shell 变量扩展:测试存在性及空值

例子:加入一个文本上有很多的电子邮件

aa#aa.com (请自动把#换成@)

4. linux shell 变量扩展:测试存在性及空值

 

${变量/符号/} 删除

把变量中第一个符号删除

4. linux shell 变量扩展:测试存在性及空值

${变量//符号/}

4. linux shell 变量扩展:测试存在性及空值

${!aa@}列出aa开头的变量

把系统中以aa开头的变量全部列出来

4. linux shell 变量扩展:测试存在性及空值

4. linux shell 变量扩展:测试存在性及空值

相关新闻

发表回复

Please Login to Comment

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

                                                                                                                                    RHCE9学习指南全部更新完成,点击阅读