shell 脚本变量参数替换用法
04 September 2024
Shell 脚本变量参数替换用法
Shell 参数替换提供了一种灵活的方式来处理变量的值。这里是一些常用的参数替换用法:
1. 默认值
${VARIABLE:-default}
- 如果
VARIABLE没有被定义或为空,则返回default。 - 如果
VARIABLE已定义且不为空,则返回VARIABLE的值。
2. 如果未设置或为空则赋值
${VARIABLE:=value}
- 如果
VARIABLE没有被定义或为空,则将value赋值给VARIABLE。 - 如果
VARIABLE已定义且不为空,则不改变VARIABLE的值。
3. 删除变量值的前缀
${VARIABLE#pattern}
- 删除
VARIABLE值中最短匹配pattern的前缀。
4. 删除变量值的最长匹配前缀
${VARIABLE##pattern}
- 删除
VARIABLE值中最长匹配pattern的前缀。
5. 删除变量值的后缀
${VARIABLE%pattern}
- 删除
VARIABLE值中最短匹配pattern的后缀。
6. 删除变量值的最长匹配后缀
${VARIABLE%%pattern}
- 删除
VARIABLE值中最长匹配pattern的后缀。
7. 替换变量中的模式
${VARIABLE/pattern/replacement}
- 将
VARIABLE中第一个匹配pattern的部分替换为replacement。
8. 替换变量中的所有匹配模式
${VARIABLE//pattern/replacement}
- 将
VARIABLE中所有匹配pattern的部分替换为replacement。
9. 计算变量的长度
${#VARIABLE}
- 返回
VARIABLE的值的长度(即字符数)。
10. 检查变量是否为空
[ -z "${VARIABLE}" ] && echo "VARIABLE is empty"
- 使用
-z测试VARIABLE是否为空。
示例
假设 filename="example.txt":
echo ${filename%.txt}会输出example,删除.txt后缀。echo ${filename##*.}会输出txt,提取最后一个.后的部分。echo ${filename//e/E}会输出ExamplE.txt,将所有e替换为E。echo ${filename:0:7}会输出example,从开始位置0截取长度为7的子串。
这些功能可以帮助你在脚本中处理字符串变量,进行替换、截取、设置默认值等操作。
