shell中变量的测试与替换
来源:互联网 发布:mac修改pdf文件 编辑:程序博客网 时间:2024/05/16 23:56
在某些时刻我们经常需要判断某个变量是否存在,若变量存在则使用既有的设置,若变量不存在则给予一个常用的设置。
(1)变量未被设置或者内容为空,则替换为新的内容.
new_var=${old_var-content}
范例一:测试一下是否存在 username 这个变量,若不存在则给予 username 内容为 root [root@www ~]# echo $username <==由于出现空白,所以 username 可能不存在,也可能是空字符串 [root@www ~]# username=${username-root} [root@www ~]# echo $username root <==因为 username 没有设定,所以给予为 root的内容。 [root@www ~]# username="vbird tsai" [root@www ~]# username=${username-root} [root@www ~]# echo $username vbird tsai <==因为 username 已经设定了,所以使用旧有的设定而不以 root取代
上面的范例中,若username已经设定为空串的话,则不会替换,如果要想它进行次替换就可以用加上“:”,即# username=${username:-root}
范例二:若 username 未设定或者为空字符串,则将 username 内容设定为 root [root@www ~]# username="" [root@www ~]# username=${username-root} [root@www ~]# echo $username <==因为 username 被设定为空字符串了!所以当然还是保留为空字符串! [root@www ~]# username=${username:-root} [root@www ~]# echo $username root <==加上『 : 』后若变量内容为空或者是未设定,都能够以后面的内容替换。
(2)"-"是不影响旧的内容,若想要替换新的内容则用“=”
[root@www ~]# unset str; var=${str=newvar} [root@www ~]# echo var="$var", str="$str" var=newvar, str=newvar <==因为 str 不存在,所以 var/str 均为 newvar 测试:如果 str 已存在了,测试一下 var 会发怎样? [root@www ~]# str="oldvar"; var=${str=newvar} [root@www ~]# echo var="$var", str="$str" var=oldvar, str=oldvar <==因为str存在,所以var等于str的内容
(3)如果我想知道,如果旧发量不存在时,整个测试就告知我『有错误』,此时就能够使用问号
[root@www ~]# unset str; var=${str?无此变量} -bash: str: 无此发量 <==因为 str 不存在,所以输出错误讯息
(4)总结
- shell中变量的测试与替换
- shell中变量的测试与替换
- 关于shell变量的测试与内容替换
- Shell基础-Bash变量-变量测试与内容替换
- shell脚本中变量中字符串替换的测试 /和//的区别
- shell中变量的替换引用
- shell中变量的空格替换
- shell中变量内容的删除、替换
- shell变量的替换
- *变量的测试与内容替换*
- shell 变量赋值与替换
- Shell: 变量替换 命令替换 & ~波浪号替换的区别
- linux:变量测试与内容替换
- bash变量测试与内容替换-61
- 26 变量测试与内容替换
- shell变量里的字符替换
- linux shell 变量的展开替换
- 【shell】变量内容的删除和替换
- 题目1059:abc
- Codrops 优秀教程:基于 CSS3 的全屏网页过渡特效
- 直播——git+python+root
- Java进阶之动态绑定
- 指定locale为en_US
- shell中变量的测试与替换
- /0's
- PostgreSQL学习手册(数据表)
- 图的邻接矩阵实现拓扑排序
- ARC指南2 - ARC的开启和禁止
- ubuntu GUI 无法登录
- 再再论指针之数组的数组与多维数组的区别
- HDU 1251 统计难题 字典树-trie树
- 如何在linux下进行contiki移植之环境搭建