【四月更文打卡】 bash变量和参数介绍

124 阅读1分钟

bash变量和参数介绍

概述

  • 变量可以让程序和脚本语言用来描述数据。一个变量仅仅是一个标签而已,被指定到计算机内存中存储着数据的某个位置或某些位置的标签。变量一般出现在算术运算操作和数量操纵及字符串解析中。

4.1. 变量替换(Variable Substitution)

  • 变量的名称是其值的占位符,代表它所包含的数据。引用(检索)它的值称为变量替换。
  • 举个例子来仔细区别一个变量名和其存储的值。例如:如果val1是某个变量的名称,那么使用$val1来引用该变量,即是其存储的数据。
[root@centos8 ~]val1=hello         # 将字符串"hello"赋值给变量val1
[root@centos8 ~]echo $val1         # 使用$符来引用该变量
hello
[root@centos8 ~]echo val1          # 不加$无法引用val所存储的数据
val1
  • 只有在如下环境中,变量前的$符可以不出现:
(引用)变量不出现$前缀的情况
declared or assigned:声明其或者其被赋值1
let 算术语句
被unset或者export
在双圆括号((...))的算术运算操作结构中
变量代表某个信号的特殊情况2
[root@centos7 /data/scripts]$ m=3
[root@centos7 /data/scripts]$ n=5
[root@centos7 /data/scripts]$ let k=m+n      # 使用let语句时不用使用$符来取变量m和n的值
[root@centos7 /data/scripts]$ echo $k
8
  • 将引用值包括在两个双引号("val")中不会影响其对变量值的引用(变量替换)。该引用方法称作"部分引用",或者叫做"弱引用"。但是使用两个单引号(val")中不会影响其对变量值的引用(变量替换)。该引用方法称作"部分引用",或者叫做"弱引用"。但是使用两个单引号('val')则会使变量替换失效,shell按照变量名的字面意思处理其。该引用方式称为"全引用",也叫作"强引用"。第五章详细介绍。
  • 需要注意的是:val实际上是val实际上是{val}的简写。某些场合前者val会出错,使用长格式的后者兼容性更好。