Shell变量
变量替换之删除指定字符串
语法作用
${var#pattern} | 将 $var 的值从左侧删除与模式 pattern 匹配的最短字符串并返回。 |
${var##pattern} | 将 $var 的值从左侧删除与模式 pattern 匹配的最长字符串并返回。 |
${var%pattern} | 将 $var 的值从右侧删除与模式 pattern 匹配的最短字符串并返回。 |
${var%%pattern} | 将 $var 的值从右侧删除与模式 pattern 匹配的最长字符串并返回。 |
小技巧:
#表示左侧; % 表示右侧。
一个 # 或 % 表示最短;两个 # 或 % 表示最长。
变量值之替换
语法作用
${var/pattern/replace} | 将 $var 的值中第一个与模式 pattern 匹配的串替换为 replace 并返回。 |
${var/pattern} | 将 $var 的值中第一个与模式 pattern 匹配的串删除并返回。 |
${var//pattern/replace} | 将 $var 的值中所有与模式 pattern 匹配的串替换为 replace* 并返回。 |
${var/#pattern/replace} | 将 $var 的值开头与模式 pattern 匹配的串替换为 replace 并返回。 |
${var/%pattern/replace} |
将 $var 的值结尾与模式 pattern 匹配的串替换为 replace 并返回。
|
有类型变量
declare和typeset两者等价,都是用来定义变量类型
参数 | 含义 |
-r | 将变量设置为只读 |
-i | 将变量设置为整数 |
-a | 将变量定义为数组 |
-f | 显示此脚本前定义过的所有函数和内容 |
-F | 显示此脚本定义过的函数名 |
-x | 将变量声明为环境变量 |