-
变量
功能 写法 描述 删除 ${变量#匹配规则} 从头开始匹配,最短删除 ${变量##匹配规则} 从头开始匹配,最长删除 ${变量%匹配规则} 从尾开始匹配,最短删除 ${变量%%匹配规则} 从尾开始匹配,最长删除 替换 ${变量/旧字符串/新字符串} 替换匹配到的第一个旧字符串为新 ${变量//旧字符串/新字符串} 替换匹配到的全部旧字符串为新 举例:
[root@ora01 ~]\# echo $JAVA_HOME #设置一个测试变量 /usr/java/jdk/jdk1.8.0_144 <<删除>>----------------------------------------------------------------- [root@ora01 ~]\# echo ${JAVA_HOME#*jdk} /jdk1.8.0_144 [root@ora01 ~]\# echo ${JAVA_HOME##*jdk} 1.8.0_144 [root@ora01 ~]\# echo ${JAVA_HOME%jdk*} /usr/java/jdk/ [root@ora01 ~]\# echo ${JAVA_HOME%%jdk*} /usr/java/ <<替换>>---------------------------------------------------------------- [root@ora01 ~]\# echo ${JAVA_HOME/jdk/JDK} /usr/java/JDK/jdk1.8.0_144 [root@ora01 ~]\# echo ${JAVA_HOME//jdk/JDK} /usr/java/JDK/JDK1.8.0_144
-
字符串处理
功能 写法 描述 获取字符串长度 ${#变量名} expr length "$变量名" (变量含空格,需加双引号) 获取子串在字符串中的索引位置 expr index "$string" $substring 若substring值在string变量中不存在,则进行每个字符的全局匹配,返回第一个匹配的字符索引 计算子串长度 expr match "$string" $substring 注意:substring 只能从字符串的开头匹配 直接匹配后面会获取不到 抽取子串 ${string:position} 从string的position开始【下标从0开始】 ${string:position:length} 从position开始,匹配长度为length ${string: -position} 从右边开始匹配 ${string:(position)} 从左边开始匹配 expr substr $string $position $length 从position开始,匹配长度为length 举例
<<设置一个测试变量>>----------------------------------------------------------- [root@ora01 ~]\# echo $JAVA_HOME /usr/java/jdk/jdk1.8.0_144 <<获取字符串长度>>------------------------------------------------------------- [root@ora01 ~]\# echo ${#JAVA_HOME} 26 [root@ora01 ~]\# expr length "$JAVA_HOME" 26 <<获取子串在字符串中的索引位置>>----------------------------------------------- [root@ora01 ~]\# echo $des_str May the Force be with you. [root@ora01 ~]\# expr index "$des_str" the 5 [root@ora01 ~]\# expr index "$des_str" FLP 9 <<计算子串长度>>-------------------------------------------------------------- [root@ora01 ~]\# echo $des_str May the Force be with you. [root@ora01 ~]\# expr match "$des_str" May 3 [root@ora01 ~]\# expr match "$des_str" you #注意:substring 只能从字符串的开头匹配 直接匹配后面会获取不到 0 <<抽取子串>>------------------------------------------------------------------ [root@ora01 ~]\# echo ${JAVA_HOME:3} r/java/jdk/jdk1.8.0_144 [root@ora01 ~]\# echo ${JAVA_HOME:3:5} r/jav [root@ora01 ~]\# echo ${JAVA_HOME: -3} #注意:符号前面必须加空格,否则无效。 144 [root@ora01 ~]\# echo ${JAVA_HOME:(3)} r/java/jdk/jdk1.8.0_144 [root@ora01 ~]\# expr substr $JAVA_HOME 3 5 #注意:expr语句的下标是从0开始。 sr/ja
shell_变量的删除替换与字符串的处理
最新推荐文章于 2023-05-10 11:17:46 发布