`

shell脚本变量和字符串截取

阅读更多

变量说明:

$ Shell本身的PID(ProcessID)

$! Shell最后运行的后台Process的PID

$? 最后运行的命令的结束代码(返回值)

$- 使用Set命令设定的Flag一览

$* 所有参数列表。如”$*”用「”」括起来的情况、以”$1 $2 … $n”的形式输出所有参数。

$@ 所有参数列表。如”$@”用「”」括起来的情况、以”$1″ “$2″ … “$n” 的形式输出所有参数。

$# 添加到Shell的参数个数

$0 Shell本身的文件名

$1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数……

 

字符串截取

Linux 的字符串截取很有用。有八种方法。

假设有变量 var=http://www.hao.com/123.htm.

1. # 号截取,删除左边字符,保留右边字符。

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://

结果是 :www.hao.com/123.htm

2. ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 http://www.hao.com/

结果是 123.htm

3. %号截取,删除右边字符,保留左边字符

echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.hao.com

4. %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

结果是:http:

5. 从左边第几个字符开始,及字符的个数

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

6. 从左边第几个字符开始,一直到结束。

echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。

结果是 :www.hao.com/123.htm

7. 从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

结果是:123

8. 从右边第几个字符开始,一直到结束。

echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。

结果是:123.htm

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

 

原文地址:http://www.lampblog.net/2011/04/shell%E8%84%9A%E6%9C%AC%E5%8F%98%E9%87%8F%E5%92%8C%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%88%AA%E5%8F%96/

分享到:
评论

相关推荐

    shell编程中的字符串截取方法小结

    一、Gnu Linux shell 截取字符变量的前8位,...二、按指定的字符串截取 1、第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ${varible%

    Shell脚本8种字符串截取方法总结

    Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 代码如下: echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边...

    Shell字符串截取的详细方法

    一、Linux shell 截取字符变量的前8位...二、按指定的字符串截取1、第一种方法:${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从

    shell字符串截取报错:Bad substitution的解决

    shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution 原因:两种shell语言解释器 bash和dash 查看当前/bin/sh ...

    比较两个字符串是否相等的shell代码

    比较两个字符串是否相等的办法是: if [ “$test”x = “test”x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到”$test”x最后的x,这是特意安排的,...

    Shell获取字符串长度的多种方法总结

    我们在日常工作中,对于求字符串操作在shell脚本中很常用,实现的方法有很多种,下面就来给大家归纳、汇总了求字符串的几种可能方法,话不多说了,来一起看看详细的介绍吧。 方法如下: 【方法一】:利用${#str}来...

    shell 字符串操作(长度,查找,替换)详解

    代码如下:工作中字符串操作举例 filename=’/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg’ #下面是使用shell字符串操作 buName1=${filename#*/jobs/} #去除’/home/admin/jobs/CnClickstat/DFSLoader/loader...

    Shell字符串比较相等、不相等方法小结

    #shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号就变成了字符串类型, #单引号不对相关量进行替换,如不对$符号解释成变量引用,从而用对应变量的值替代,双引号则会...

    common-scripts:这是程序员最常用的脚本

    参见:语法级别bash syntax编写脚本过程中,常用的或必须掌握的语法点有变量,声明、赋值、使用字符串,单引号 / 双引号(区别)、位置、截取、拼接数组,定义、赋值、取值、长度、遍历参数,传递、取值、特殊字符处理...

    700个批处理打包下载.rar

    抛弃路径尾部指定层次的字符串.cmd 拼接相临的奇偶行文本内容.cmd 指定图片路径换桌面.bat 按创建时间显示完整路径.cmd 按扩展名分类.bat 按软件分类建立文件夹.cmd 换桌面.bat 探测空文件夹.cmd 提取两个文件内容的...

    大量批处理实用程序例程

    本资源由大量的实用批处理文件组成,删除.txt尾缀名双击即可直接使用,既是学习的模板也可以作为实用程序,如下为文件组成,涉及文件管理,系统,网络,小工具等等: ...获取路径中指定层深的字符串.cmd

    精通Windows.API-函数、接口、编程实例.pdf

    15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 15.4 使用msi文件进行安装 472 15.4.1 Windows Installer Service 472 15.4.2 msi文件的创建与修改工具orca.exe 474 15.4.3 准备工作 475 15.4.4...

    精通WindowsAPI 函数 接口 编程实例

    15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 15.4 使用msi文件进行安装 472 15.4.1 Windows Installer Service 472 15.4.2 msi文件的创建与修改工具orca.exe 474 15.4.3 准备工作 475 15.4.4...

Global site tag (gtag.js) - Google Analytics