Shell_参数替换(転)
From: http://www.cnblogs.com/yjf512/archive/2013/06/03/3114803.html
Bash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。
1、${}带冒号的有下面几种表达式:
${parameter:-word}
如果parameter为null或者未设置,整个参数替换表达式值为word
${parameter:=word}
如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word
${parameter:?word}
如果parameter为null或者未设置,则打印出错误信息。否则,整个参数替换表达式值为$parameter
${parameter:+word}
如果parameter不为null或者未设置,则整个参数替换表达式值为word
${parameter:offset}
${parameter:offset:length}
parameter的值的子字符串。
可以理解下下面这几个例子:
2、${}带!有下面几种表达式:
${!prefix*}
${!prefix@}
将带有前缀为prefix的参数名打印出来
${!name[@]}
${!name[*]}
这个是针对name数组的,打印出来name数组有哪些下标
可以理解下下面这几个例子:
3、${}带正则匹配的几种表达式:
${parameter#word}
${parameter##word}
从头开始扫描word,将匹配word正则表达的字符过滤掉
#为最短匹配,##为最长匹配
${parameter%word}
${parameter%%word}
从尾开始扫描word,将匹配word正则表达式的字符过滤掉
%为最短匹配,%%为最长匹配
可以理解下面这几个例子:
${parameter/pattern/string}
${parameter//pattern/string}
将parameter对应值的pattern字符串替换成为string字符串
/表示只替换一次
//表示全部替换
可以理解下面这几个例子:
Shell_参数替换(転)的更多相关文章
- .net mvc RazorEngine 字符串razor参数替换
在.net中有一个比较好的字符串参数替换的方案RazorEngine推荐大家看看原网站,然后做个小联系然后你就懂啦 首先呢得下载一个吧, vs中tools-> Library Paging Ma ...
- Python巧用正则表达式,完成接口参数替换
最近给Python11期的小朋友们上课,遇到了一个参数替换的问题,首先描述下场景: 需要参数化的数据如下所示: 这个时候如果利用单纯的if判断和字符串的find和replace方法,做起来是非常不明智 ...
- Linux Shell参数替换
Linux Shell参数替换 2013-06-03 10:01 by 轩脉刃, 1816 阅读, 0 评论, 收藏, 编辑 Bash中的符号的作用是参数替换,将参数名替换为参数所代表的值.对于 来说 ...
- python_接口自动化测试_处理参数替换
在进行自动化测试时,通常会存在A接口用例的返回值是B接口用例的入参这样的情况 可进行如下方式处理: step1.处理A用例时,在响应结果中提取出该数据的值,并赋给一变量,比如 exeId = res. ...
- 反向解析 参数替换 reverse
- 【解决了一个小问题】golang xorm中使用where id in (xxx),没办法使用参数替换
代码中使用XORM来从数据库查询数据,有类似如下的代码: session.Where("id in (?)", strings,Join(arr, ",")) ...
- JS替换URL中参数示例
<script type="text/javascript"> var url = window.location.href; url = changeURLArg(u ...
- python使用String的Template进行参数动态替换
1.前言: 之前使用string的find(),从指定的param里面查找,是否包含了某个字符,有的话,使用replace进行替换,一个接口的param要替换的参数少的话,使用这种方式,的确可行,如果 ...
- LoadRunner参数更新方法和数据分配
参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数. 对Vuser脚本进行参数化的好处: 1.减小脚本的大小 2.提供了使用不同的脚本的值执行脚本的能力 参数化涉及两个任务: 1.用 ...
随机推荐
- OD调试篇13
今天的程序比较大,听说还是比较牛的程序,不过破解它的一个比较老的版本的.打开程序看看. 点击about 然后点enter registration code 输入name 以及密钥之后,会 ...
- C#常用操作类库三(XML操作类)
/// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...
- js创建对象的6种方式
一.工厂模式 function createStudent(name,age){ var o=new Object(); o.name=name; o.age=age; o.myName=functi ...
- git新建仓库
克隆地址 git clone https://git.oschina.net/dy09/dy_shop.git 在克隆下来的文件夹里面进行下面的操作1.git add -A 2.git commit ...
- centos添加PATH环境变量
1.cd ~ 2.vi .bashrc 3.在代码末尾增加一行: export PATH =/path/to/target-dir/bin:$PATH 4.source .bash_profile立即 ...
- gradle 命令
gradle -v gradle clean gralde build gradle assembleDebug gradle assembleRelease gradle clean --refre ...
- EDIUS中调整YUV曲线的教程
本篇文章重点地讲解了EDIUS调整YUV曲线的方法,是一篇很详细的EDIUS教程文章,它能帮助新手小伙伴快速掌握EDIUS视频编辑软件的某一知识点.相信坚持学习小编推荐的教程文章,你们会很快入门EDI ...
- UIAutomator定位Android控件的方法
UIAutomator各种控件定位的方法. 1. 背景 使用SDK自带的NotePad应用,尝试去获得在NotesList那个Activity里的Menu Options上面的那个Add note菜单 ...
- python数据分析之pandas库的DataFrame应用二
本节介绍Series和DataFrame中的数据的基本手段 重新索引 pandas对象的一个重要方法就是reindex,作用是创建一个适应新索引的新对象 ''' Created on 2016-8-1 ...
- ES(一): 架构及原理
Elasticsearch 是一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建,可以用于全文搜索,结构化搜索以及近实时分析.可以说Lucene是当今最先进,最高效的全功 ...