文章目录
- 解释
- 代码
解释
在Shell脚本中,${} 是一种变量替换语法。它用于获取和操作变量的值。
具体来说,${} 可以用来执行以下操作:
-
变量引用:${variable} 表示引用变量 variable 的值。
-
变量默认值:${variable:-default_value} 表示如果变量 variable 为空或未设置,则使用 default_value 作为其值。
-
变量存在性检查:${variable:+value_if_exists} 表示如果变量 variable 存在且非空,则使用 value_if_exists 作为其值。
-
变量长度获取:${#variable} 表示获取变量 variable 的长度。
-
字符串截取:${variable:start:length} 表示从变量 variable 的 start 位置开始截取长度为 length 的子字符串。
-
字符串替换:${variable/pattern/replacement} 表示将变量 variable 中匹配 pattern 的部分替换为 replacement。
代码
#!/bin/bash# 变量引用示例
name="Alice"
echo "Hello, ${name}!"
# 输出:Hello, Alice!# 变量默认值示例
unset age
default_age=18
echo "Age: ${age:-$default_age}"
# 输出:Age: 18,因为变量 age 未设置,默认使用 $default_age 的值# 变量存在性检查示例
name="Bob"
echo "Welcome, ${name:+$name}"
# 输出:Welcome, Bob,因为变量 name 存在且非空# 变量长度获取示例
message="Hello, World!"
echo "Message length: ${#message}"
# 输出:Message length: 13# 字符串截取示例
string="abcdefg"
echo "Substring: ${string:1:3}"
# 输出:Substring: bcd,从位置 1 开始截取长度为 3 的子字符串# 字符串替换示例
string="Hello, world!"
echo "Replace: ${string/world/China}"
# 输出:Replace: Hello, China!,将字符串中的 "world" 替换为 "China"