使用$符号是对变量的常规应用,在实际shell编程中,我们需要对变量进行一些特殊操作,这些操作我们只需要借助于特殊操作符号来进行,不用编写复杂的操作函数。
特殊操作
变量可以使用${}符号进行操作,该符号用于引用变量的值,并可以对变量的值进行一些操作,例如获取字符串的长度、截取字符串等。
${var}
这种方式与 $var 类似,将变量的值插入到命令行中。不同之处在于,使用 ${} 语法可以在变量名后面添加其他字符,例如:
bash复制代码name="Tom"
echo ${name}_Doe
输出 "Tom_Doe"。
${var-default}
在变量不存在或为空时,使用默认值替换变量。
bash复制代码echo ${occupation:-"unemployed"}
如果变量 occupation 不存在或为空,将输出 "unemployed"。
${var:=default}
这种方式与 ${var-default} 类似,不同之处在于,如果变量不存在或为空,将使用默认值替换变量,并将默认值赋值给变量。
bash复制代码echo ${age:=18}
echo $age
如果变量 age 不存在或为空,将输出 "18" 并将其赋值给变量 age。
${var:?message}
在变量不存在或为空时,输出一条错误信息。
bash复制代码echo ${city:?"variable city is not set"}
如果变量 city 不存在或为空,将输出 "variable city is not set"。
${var:offset:length}
从变量的指定位置开始截取指定长度的子字符串。
bash复制代码str="Hello, World!"
echo ${str:7:5} # 输出:World
我们从字符串变量 str 的第 7 个字符开始,截取 5 个字符的子字符串。
${#var}
获取字符串的长度。
bash复制代码string="Hello, world!"
echo ${#string} # 输出:13,获取字符串的长度
字符串"Hello, world!"长度为13。
运算操作
整数变量运算使用$(())符号进行,可以进行算术运算。需要注意的是,(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。我们可以使用$获取 (( )) 命令的结果,这和使用$获得变量值是类似的。
bash复制代码x=5
y=3
echo $(($x + $y)) # 输出:8
链接:https://juejin.cn/post/7218947399196164152
|