Shell下截取字符串的功能非常少,不过有时在判断字符串前缀或是后缀时却非常重要。这里说的Shell不包含Bash和Csh,主要是给Freebsd下sh脚本使用的。例如下面的一个列子:
PRG_INFO_NAME="Make"
MKE_INFO_ACT="/bin/make"
Foo ()
{
var = $1
#如果var是Name属性,则显示该变量,否则执行变量中的行为.
}
Foo "PRG_INFO_NAME"
Foo "MKE_INFO_ACT"
为了实现上面的功能,我们需要字符串截取来判断字符串是包含的"NAME"还是"ACT"来实现我们需要的功能。在Shell中包含了对变量的操作:
${var##*string} 从左往右截取最后一次匹配上string右边的字符串
${var#*string} 从左往右截取第一次匹配上string右边的字符串
${var%%string*} 从右往左截取最后一次匹配上string左边的字符串
${var%string*} 从右往左截取第一次匹配上string左边的字符串
我们现在来实现上面的代码:
PRG_INFO_NAME="Make"
MKE_INFO_ACT="/bin/make"
Foo ()
{
local var = $1
if [ "${var##*_}" = "NAME" ]; then
eval echo $"$var"
elif [ "$var##*_}" = "ACT" ]; then
eval exec $"$var"
fi
}
也可以判断前缀
PRG_INFO_NAME="Make"
MKE_INFO_ACT="/bin/make"
echo {$PRG_INFO_NAME%%_*} # 返回: PRG
echo {$MKE_INFO_ACT%_*} # 返回: MKE_INFO
简单的组合也可以实现复杂的功能。
发表评论
-
PCRE函数简介和使用示例
2012-07-06 09:46 602PCRE是一个NFA正则引擎,不然不能提供完全与Perl一 ... -
组件服务中找不到office word
2012-07-03 13:44 1263在.NET环境下,使用word组件进行word操作,实现w ... -
AS3.0相关知识
2012-07-02 13:16 647as3.0 2010-01-06 0 ... -
JAVA+fms
2012-07-02 13:16 814最近完成的 Java Flex Fms 视频聊天程序,虽然 ... -
BulkLoader多个文件一起加载
2012-07-02 13:16 569flex的单线程以及事件机制,导致了它在加载文件的时候不能 ... -
学习组件拖拽
2012-07-02 13:16 466/本篇文章来源于ACCP教程网, ... -
Cairngorm示例:用户登录
2012-07-02 13:16 3771. Cairngorm简介 Cairngorm是 ... -
[ActionScript3.0][My flex]读书笔记三之 模块化编程
2012-07-01 10:45 6051.加载mxml模块 第一步: 新建mxml模块:Data ... -
Flex+C# WebService连接的例子
2012-07-01 10:45 625Webservie后台的代码: using System; ... -
[ActionScript3.0][My flex]读书笔记四之 图标模块应用实例
2012-07-01 10:45 6461.chartdata.xml 2.MyCo ... -
FLEX数据绑定要点(转)
2012-07-01 10:45 5861.什么是数据绑定 ... -
Removing items from a Flex DataGrid control using the DragManager class
2012-07-01 10:45 600You want to remove items from ... -
flex 打印 预览
2012-06-30 17:09 630flex 打印 预览 2011年03 ... -
flex学习-------flex与as基础
2012-06-30 17:09 531flex学习-------flex与as基础 2010年10 ... -
关于FLex Unit 的 Runtime Exception
2012-06-30 17:08 524关于FLex Unit 的 Runtime Exception ... -
关于Flex4工程和 Alternativa3D 7.5.1的疑问
2012-06-30 17:08 630关于Flex4工程和 Alternativa3D 7.5.1的 ... -
The architecture of Flex and Java applications two (Flex 和 Java 应用程序架构 2)
2012-06-30 17:08 434The architecture of Flex and Ja ...
相关推荐
shell 字符串 截取 查找 替换 shell 字符串 截取 查找 替换 shell 字符串 截取 查找 替换 shell 字符串 截取 查找 替换
shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串...
一、Gnu Linux shell 截取字符变量的前8位,...二、按指定的字符串截取 1、第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ${varible%
一、Linux shell 截取字符变量的前8位...二、按指定的字符串截取1、第一种方法:${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从
linux shell 字符串的截取
Linux 字符串 字符串截取 方法很多很实用
在UNIX下截取字符串,总结的,欢迎大家补充,本人是在unix shell方面新手
主要介绍了Shell脚本8种字符串截取方法总结,每个方法给出了实例代码和操作结果,一目了然,需要的朋友可以参考下
shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution 原因:两种shell语言解释器 bash和dash 查看当前/bin/sh ...
linux中shell截取字符串方法总结linux操作系统电脑资料.doc
主要介绍了总结的7个shell字符串操作方法和实例分享,包括长度获取、查找位置、字符截取、匹配查询等,需要的朋友可以参考下
1. 字符串声明 概述 字符串的基本操作 脚本 1 # 声明字符串 str01=str01 echo ${str01} # 单引号也可以 # 不过后面的例子, 通常是用 双引号, 具体原因, 以后会解释\nstr02='str02' echo ${str02} # 对引号的转义,...
主要介绍了Linux Shell 截取字符串的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
shell字符截取命令之cut命令的实例详解 一 语法 cut [选项] 文件名 选项: -f 列号:提取第几列 -d 分隔符:按照指定分隔符分割列 二 实战 [root@localhost ~]# cat student.txt 1 furong F 85 2 fengj F 60 3...
aix常用操作命令(vi,shell),这个是公司内部培训的采用命令