shell笔记---变量扩展
来源:互联网 发布:java中多态的表现形式 编辑:程序博客网 时间:2024/05/28 22:12
在shell中要使用一个变量var,通常是采用表达式${var},其实在左括号‘{‘到右括号‘}’之间有一些特定的语法可以实现变量扩展功能。
取子字符串
语法: ${变量名:起点:长度}
var="hello world"echo ${var:0:5}结果:hello
当省略长度时,将得到从起点开始的子字符串
var="hello world"echo ${var:6}结果:world
字符串长度
语法:${#变量名}
var="hello world"echo ${#var}结果:11
替换字符
语法: ${变量/匹配样式/替换字符串}
var="hello world"echo ${var/hello/hi}结果:hi world
当替换字符串为空时,可以实现删除匹配的字符串
var="hello world"echo ${var/hello/}结果:world
根据状态返回值
shell可以根据变量的状态(未定义,空值,非空值)3种状态返回对应的值。
语法一:${变量-字符串}
当${变量}未定义时,使用字符串作为返回值
echo ${var-hello}结果:hello
语法二:${变量:-字符串}
当${变量}未定义或为空值时,使用字符串作为返回值
var=echo ${var:-hello}结果:hello
语法三:${变量+字符串}
当${变量}定义过,使用字符串作为返回值
var=echo ${var+hello}结果:hello
语法四:${变量:+字符串}
当${变量}为非空值时,使用字符串作为返回值
var=worldecho ${var:+hello}结果:hello
用途:假设${var}为某个命令cmd的非必需选项-l的参数cmd ${var:+-l} ${var}var=结果:cmdvar=test结果:cmd -l test
语法五:${变量=字符串}
当${变量}未定义时,使用字符串作为返回值,同时赋值给${变量}
echo ${var=hello}echo ${var}结果:hello hello
语法六:${变量:=字符串}
当${变量}为未定义或为空值时,使用字符串作为返回值,同时赋值给${变量}
var=echo ${var:=hello}echo ${var}结果:hello hello
0 0
- shell笔记---变量扩展
- Shell学习笔记(6)-高级变量之变量扩展
- shell 变量 扩展字串
- shell 变量特殊扩展:示例
- linux shell 笔记---变量
- shell变量学习笔记
- Shell脚本 变量笔记
- Shell学习笔记---变量
- shell中变量扩展技巧及实例
- shell中的参数扩展, 特殊变量
- shell变量扩展与字符串操作
- 【Bash百宝箱】shell变量及扩展
- (shell笔记六)Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- shell学习笔记一 变量
- shell学习笔记:变量相关
- bash shell 之变量笔记
- Shell学习笔记---特殊变量
- Linux Shell 学习笔记(三)--Shell变量
- Struts2学习笔记(第二天)
- 51nod 1086 背包问题 V2 (多重背包)
- VS 编译出错:MSB3073
- SSH整合jar包总结
- Java语言基础(C++异同点)
- shell笔记---变量扩展
- LinqToXML中的XmlDocument去除头部声明写法
- Python:eval的妙用和滥用
- opencv使用cmake链接库函数出现usr/bin/ld: cannot find -lopencv_终极解决方案
- fetch
- 一次同余式的求解(扩展欧几里得)
- 优秀的第三方常用控件
- Java中的动态代理技术
- maven assembly plugin使用