shell 截取变量的字符串

假设有变量 var=http://www.linuxidc.com/test.htm
一 # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.linuxidc.com/test.htm

二 ## 号截取,删除左边字符,保留右边字符。
echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.linuxidc.com/        
结果是 test.htm
三 %号截取,删除右边字符,保留左边字符
echo ${var%} #显示结果sbin/ntpdate
    3.2 由字符串前面开始对比删除最长的相符者
             语法:${待测变量##样式}
             实例:
                filename="/usr/sbin/ntpdate"
                echo ${filename##} #显示结果sbin/ntpdate
    3.2 由字符串前面开始对比删除最长的相符者
             语法:${待测变量##样式}
             实例:
                filename="/usr/sbin/ntpdate"
                echo ${filename##/*/}  #显示结果ntpdate
    3.3 由字符串后面开始对比删除最短的相符者
             语法:${待测变量%样式}
             实例:
               filename="/usr/sbin/ntpdate"
               echo ${filename%/*} #输出结果/usr/sbin
    3.4 由字符串后面开始对比删除最长的相符者
             语法:${待测变量%%样式}
             实例:
               filename="hello/usr/sbin/ntpdate"
               echo ${filename%%/*} #输出结果hello
  
4.替换或删除部分字符串
 
   4.1 只替换找到的第一个字符串
        语法:${待测变量/样式/替换}
        实例:
             str="hello hello"
             echo ${str/hello/world}  #结果为world hello
   4.2 替换找到的所有样式字符串
        语法:${待测变量//样式/替换}
        实例:
             str="hello hello"
             echo ${str/hello/world}  #结果为world world
   4.3 删除第一个指定的字符串
        语法:${待测变量/要删除的字符串/}
        实例:
             str="hello hello"
             echo ${str/hello/}  #结果为hello
    4.4 删除所有指定的字符串
        语法:${待测变量//要删除的变量/}
        实例:
             str="hello world hello"
             echo ${str//hello/} #输出结果为world
5.命令扩展
    语法:$(命令)
    实例: time=$(date) 等价 time=`date`
6.算术扩展
    语法:$((算术))
    实例:
  echo "a=$((5*5))" #结果为a=25

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。