假设有变量 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

shell 截取变量的字符串的更多相关文章

  1. shell 截取变量的字符串(转)

    来自:http://blog.sina.com.cn/s/blog_7c95e5850100zpch.html 假设有变量 var=http://www.linuxidc.com/test.htm 一 ...

  2. Linux Shell 高级变量及字符串

    高级变量包含三个部分1.变量扩展2.命令替换3.算术扩展在Bash Shell中,$算符会触发到上述三种扩展,基本形式如下:    基本型             扩展种类            例子 ...

  3. shell 截取指定的字符串

    按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...

  4. shell截取字符串方法

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${parameter:?word}${p ...

  5. shell 之解释器、变量、字符串、数组

    1.Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...

  6. Linux Shell 截取字符串

    Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...

  7. shell截取字符串的方法

    参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${ex ...

  8. shell截取指定字符串之间的内容

    #!/bin/bash#截取字符串 #path=ss/usr/share/src/root/home/admin path=ss/usr/share/src/root/home/admin/src/a ...

  9. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

随机推荐

  1. jmeter 添加header

    接口说明文档: article.fetch(通用转码服务) 通用转码服务,获取任意 url 的正文以及 title 等基本信息,仅支持 post 方法请求. 参数 参数 类型 是否必须 示例 其它说明 ...

  2. [功能集锦] 003 - 一键生成mysql数据字典/数据库速查表

    写在前面: 因为工作时候经常遇到半路接手项目的情况,由于年代久远,数据库字典这块经常缺失.故写此篇,以便复用,也希望对大家有点帮助. 随笔内容不高级,如有不妥,不吝指正. ps:有另一篇详细随笔可以参 ...

  3. CentOS下编译Lua使得其支持动态链接

    在Linux下编译Lua时,我一般都是使用的make generic,这样编译没有什么问题,运行lua的程序也都OK,但是,这样在加载外部的C动态 链接库,却总是报下面的错误 dynamic libr ...

  4. Linux Interactive Exploit Development with GDB and PEDA

    Exploit Development Process● Occupy EIP● Find the offset(s)● Determine the attack vector● Build the ...

  5. bzoj1779 [Usaco2010 Hol]Cowwar 奶牛战争(网络流)

    1779: [Usaco2010 Hol]Cowwar 奶牛战争 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 302  Solved: 131[Sub ...

  6. 77.LRU Cache(最近最久未使用算法)

    Level:   Hard 题目描述: Design and implement a data structure for Least Recently Used (LRU) cache. It sh ...

  7. datagridview里面的checkbox全选和取消全选

    全选 设置全选button,选中所有的checkbox private void selectAll_Click(object sender, EventArgs e) { //遍历datagridv ...

  8. 灰常牛逼的命令行备忘录 navi

    灰常牛逼的命令行备忘录 navi 1. navi命令简介 1.1 navi命令简介 命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘.举个栗子,如果我们常用 git 命令行管 ...

  9. BZOJ 4034 树链剖分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4034 题意:中文题面 思路:树链剖分入门题. 剖分后就是一个简单的区间更新和区间求和问题. ...

  10. python基础:2.二进制

    1.二进制:计算机存储0,1的一种方式,规则是逢2进1. 一个数字在计算机存储的是一个字节,即8个bit,每个bit要么存储0,要么存储1. 0000 0000 (二进制)表示 0(十进制), 000 ...