Shell变量测试与内容置换
在脚本中,有时需要判断变量是否存在或是否被赋予了值,如果变量已经存在并且被赋予了值,则不改变变量;如果变量不存在或没有被赋值,则赋予其新值。这时我们就可以使用变量测试与内容置换。 我们在脚本中可以使用条件判断语句 if 来替代这种测试方法,不过使用 Shell 自带的变量置换更加方便,但是这种方法容易记混,我们通过表 1 来进行说明。
如果大括号内没有":",则变量 y 为空或没有被设置,处理方法是不同的;如果大括号内有":",则变量 y 不论是为空,还是没有被设置,处理方法是一样的。 如果大括号内是"-"或"+",则在改变变量 x 的值的时候,变量 y 的值是不改变的;如果大括号内是"=",则在改变变量 x 的值的同时,变量 y 的值也会改变。 如果大括号内是"?",则当变量 y 不存在或为空时,会把"新值"当成报错输出到屏幕上。 【例 1】
[root@localhost ~]# unset y
[root@localhost ~]#y="" 【例2】 如果大括号内是"=",则又是什么情况呢?先测试一下变量 y 没有被设置的情况,如下:
[root@localhost ~]# unset y
[root@localhost ~]#y=""
[root@localhost ~]# y=old 【例3】 再测试一下大括号中是"?"的情况。
[root@localhost ~]# unset y
[root@localhost ~]# y=old (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – VMXNET3 nic在N小时后失去了更新ARP表的能力
- 权限 – 使用Sed时拒绝权限
- Linux拓展练习部分--输入输出 / find部分 /基础拓展2
- LINUX实战:Linux探索之旅 | 第四部分第一课:压缩文件,解
- linux – 网络不适用于qemu guest(Malta Mips)
- 任务1:Linux Kernel提权(50分)[2019年信息安全管理与评估
- 如何找出谁在Linux服务器上删除文件?
- linux – 使用rsync在复制期间使用–files-from重命名文件?
- 忽略系统调用
- linux – Spark配置,SPARK_DRIVER_MEMORY,SPARK_EXECUTOR_M