关于shell变量的测试与内容替换

参考资料《鸟哥的私房菜——Linux基础学习篇(第三版)》。

在《鸟哥的私房菜——Linux基础学习篇(第三版)》第11章中,鸟哥关于变量的测试与内容替换中,鸟哥最后用范例说明了变量替换中‘-‘、‘=‘、‘?‘三种特殊符号的用法。

看完这些例程,给我最大的感受就是var=${str-newvar}或者var=${str=newvar}或者var=${str?newvar}的变量替换就与C语言中唯一的三目运算符?的用法类似:

Max=(x>y)?(x:y)。此处我们分析如下:

var=${str-newvar}:如果str不存在,则var=newvar;  //选择后者

如果str存在,则var=${str};  //选择前者

同理“=”也可类似解释:

var=${str=newvar}:如果str不存在,则var=newvar;  //选择后者
但由于是等于号,所以str=newvar;

如果str存在,则var=${str};  //选择前者
str保持原有内容

对于“?”的解释为“

var=${str?无此变量}:如果str不存在,则输出错误提示:无此变量;  //选择后者

如果str存在,则var=${str};  //选择前者
str保持原有内容

时间: 2024-09-29 21:55:13

关于shell变量的测试与内容替换的相关文章

[Shell]Bash变量:变量测试与内容替换

--------------------------------------------------------------------------------------------- 变量测试是通过显示x的值,判断y的值:程序执行时用于判断,可以用 if 判断同样实现. Link:http://www.cnblogs.com/farwish/p/4772113.html

Shell变量的取用、删除、取代与替换

<<鸟哥的私房菜>> 变量的取用: echo echo $variableecho $PATHecho ${PATH} 变量的配置守则1.变量与变量内容以一个等号『=』来连结,如下所示:  『myname=VBird』 2.等号两边不能直接接空格符,如下所示为错误:  『myname = VBird』或『myname=VBird Tsai』 3.变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:  『2myname=VBird』 4.变量内容若有空格符可使用双引号『

Shell变量内容的删除、替代与替换

Shell变量的删除: [email protected]:~$ path=${PATH}     ##设置path和PATH相同内容 [email protected]:~$ echo $path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games [email protected]:~$ echo ${path#/*sbin:}        ##加上'#'符号删除匹

测试工程师需要了解的shell变量知识

欢迎访问个人博客 什么是变量 本地变量:手动定义的,在当前系统的某个环境下才能生效,作用范围小 普通变量: 单引号:原字符输出,变量名='变量值' ? shell name='tom' ? shell echo $name tom 双引号:变量名="变量值",看一下值当中有没有对其他变量的引用,如果有就获取变量值然后组合到一起输出 ? shell word="I am $name" ? shell echo $word I am tom 直接命名不加任何引号:变量名

shell变量的替换,命令的替换,转义字符

1,shell变量的替换 变量可以根据变量是否为空或者被删除,而被替换为特定的值 ${var}  变量本来的值 $(var:-word)   如果变量为空,或者已被删除那么返回word,但是不改变var的值 name="xiaoming" echo "xiaoming 's age is ${age:-12}" ech   "age = ${age}" >>>>>>>> xiaoming 's ag

shell变量的替换

1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.declare.expr.双括号等.shell变量可分为两类:局部变量和环境变量.局部变量只在创建它们的shell中可用.而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用shell变量.变量名必须以字母或下划线字符开头.其余的字符可以是字母.数字(0~9)或下划线字符

shell 文件内容替换 sed用法

调用sed命令有两种形式: sed [options] 'command' file(s) sed [options] -f scriptfile file(s) 删除:d命令 $ sed '2d'   example-----删除example文件的第二行. $ sed '2,$d' example-----删除example文件的第二行到末尾所有行. $ sed '$d' example-----删除example文件的最后一行. $ sed '/test/'d example-----删除

[笔记]shell变量基础

变量命名:使用英文,数字及 _ (下划线)组成,开头不能是数字,长度无限制,严格区分大小写 变量设置:变量名=变量值     注意:等号两边无空格       可以把变量值用单引号或双引号括起来       不支持所有中文符号(包括中文的单双引号)       可使用反单引号(Tab键上方) `COMMAND` 或$(COMMAND)来取得COMMAND的输出       使用"\"转义可将特殊字符如\ $ ! 空格符 等变为普通字符       可在script中添加'shopt -

《跟老男孩学Linux运维之shell编程实战》-第三章 shell变量知识进阶

本文讲解shell变量知识进阶. 以下为知识点的总结,关于练习,本文不不涉及,还需要各位小伙伴自己练习! 1.shell中的特殊位置参数变量,请见下表: 在企业场景下,"$?"的用法: (1)判断命令.脚本或函数等程序是否执行成功: (2)若在脚本中调用执行"exit 数字",则会返回这个数字给"$?"变量: (3)如果是在函数里,则通过"return  数字",把这个数字以函数返回值的形式传给"$?".