变量 $ ${} ${!}
2016-07-16 21:18
393 查看
1、变量的引用,当param为数组时,$param和"$param"区别
[b]$param将数组作为n个参数处理,而[b]"$param"将数组作为一个整体处理,举例:[/b][/b]
2、基本参数扩展:
3、间接参数扩展:
Bash4.0特性
4、大小写修改:
[xiluhua@vm-xiluhua][~/shell_script]$touchtest1.123test2.123test3.123
[xiluhua@vm-xiluhua][~/shell_script]$ll-t*.123
-rw-rw-r--.1xiluhuaxiluhua02016/07/1621:27:31test1.123
-rw-rw-r--.1xiluhuaxiluhua02016/07/1621:27:31test2.123
-rw-rw-r--.1xiluhuaxiluhua02016/07/1621:27:31test3.123
5、变量名扩展:
6、字符串移除:(举例说明)
7、字符串搜索与替换
8、字符串长度
9、子字符串扩展
10、指定默认值
11、替换特殊字符
[b]$param将数组作为n个参数处理,而[b]"$param"将数组作为一个整体处理,举例:[/b][/b]
[xiluhua@vm-xiluhua][~/shell_script]$catcompare1.sh #======================================================================================= #/bin/bash #auth:xiluhua #date:20160717 #desc: #======================================================================================= v_list="abc" echo"===demo1===" echo"echo\$v_list:" forcharin$v_list do echo$char done echo"===demo2===" echo"echo\"\$v_list\":" forcharin"v_list" do echo$char done
2、基本参数扩展:
[xiluhua@vm-xiluhua][~]$echo$temp 100 [xiluhua@vm-xiluhua][~]$echo$temp1 结果:echonothing 这时必须使用${} [xiluhua@vm-xiluhua][~]$echo${temp}1 1001
3、间接参数扩展:
[xiluhua@vm-xiluhua][~]$temp=100 [xiluhua@vm-xiluhua][~]$param=temp [xiluhua@vm-xiluhua][~]$echo$param temp [xiluhua@vm-xiluhua][~]$echo${!param} 100
Bash4.0特性
4、大小写修改:
${PARAMETER^}将参数值的第一个字符改为大写 ${PARAMETER^^}将参数值的所有字符改为大写 ${PARAMETER,}将参数值的第一个字符改为小写 ${PARAMETER,,}将参数值的所有字符改为小写
[xiluhua@vm-xiluhua][~/shell_script]$cat2.sh #======================================================================================= #/bin/bash #auth:xiluhua #date:20160626 #desc:test #======================================================================================= forfilein*.123;do mv"$file""${file^^}" done
[xiluhua@vm-xiluhua][~/shell_script]$2.sh [xiluhua@vm-xiluhua][~/shell_script]$ll-t*.123 -rw-rw-r--.1xiluhuaxiluhua02016/07/1621:27:31TEST1.123 -rw-rw-r--.1xiluhuaxiluhua02016/07/1621:27:31TEST2.123 -rw-rw-r--.1xiluhuaxiluhua02016/07/1621:27:31TEST3.123
5、变量名扩展:
[xiluhua@vm-xiluhua][~/shell_script]$temp1=1
[xiluhua@vm-xiluhua][~/shell_script]$temp2=2
[xiluhua@vm-xiluhua][~/shell_script]$temp3=3
[xiluhua@vm-xiluhua][~/shell_script]$echo${!temp*}
temp1temp2temp3
或
[xiluhua@vm-xiluhua][~/shell_script]$echo${!temp@}
temp1temp2temp3
6、字符串移除:(举例说明)
[xiluhua@vm-xiluhua][~/shell_script]$pride="IRONMANistheprideofthePEOPLE'SREPUBLICOFCHINA"
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride#*} #移除第一个空格前的内容
MANistheprideofthePEOPLE'SREPUBLICOFCHINA
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride##*} #移除最后一个空格前的内容
CHINA
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride%*} #移除最后一个空格后的内容
IRONMANistheprideofthePEOPLE'SREPUBLICOF
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride%%*} #移除最后一个空格前的内容
IRON
最常用的业务场景是提取文件名的一部分:
[xiluhua@vm-xiluhua][~/shell_script]$filename=test1.123
[xiluhua@vm-xiluhua][~/shell_script]$echo${filename##*.} #得到文件后缀
123
[xiluhua@vm-xiluhua][~/shell_script]$echo${filename%.*} #得到文件名
test1
[xiluhua@vm-xiluhua][~/shell_script]$filename=/home/xiluhua/test1.123
[xiluhua@vm-xiluhua][~/shell_script]$echo${filename%/*} #得到文件目录
/home/xiluhua
[xiluhua@vm-xiluhua][~/shell_script]$echo${filename##*/} #得到文件名称
test1.123
7、字符串搜索与替换
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride} #原文
IRONMANistheprideofthePEOPLE'SREPUBLICOFCHINA
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride/the/a} #the替换成a,仅替换第一处
IRONMANisaprideofthePEOPLE'SREPUBLICOFCHINA
您在/var/spool/mail/xiluhua中有新邮件
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride//the/a} #他和替换成a,替换所有
IRONMANisaprideofaPEOPLE'SREPUBLICOFCHINA
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride/the} #删除第一个the
IRONMANisprideofthePEOPLE'SREPUBLICOFCHINA
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride//the} #删除所有the
IRONMANisprideofPEOPLE'SREPUBLICOFCHINA
8、字符串长度
[xiluhua@vm-xiluhua][~/shell_script]$echo${#pride}
55
9、子字符串扩展
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride:5} #截取第5个字符后的字符串
MANistheprideofthePEOPLE'SREPUBLICOFCHINA
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride:28:55} #截取从28-55的字符
PEOPLE'SREPUBLICOFCHINA
10、指定默认值
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride:-"theprideofthePEOPLE'SREPUBLICOFCHINA"}
IRONMANistheprideofthePEOPLE'SREPUBLICOFCHINA
[xiluhua@vm-xiluhua][~/shell_script]$unsetpride
[xiluhua@vm-xiluhua][~/shell_script]$echo${pride:-"theprideofthePEOPLE'SREPUBLICOFCHINA"}
theprideofthePEOPLE'SREPUBLICOFCHINA
11、替换特殊字符
PID=`netstat-tpln|grep8002`;PID=${PID#*LISTEN};PID=`echo$PID|sed-s"s/\/java//g"`
相关文章推荐
- 将Windows系统编译的.NET Core程序发布到Ubuntu系统
- socket基础知识及js中的Web Sockets
- MySQL如何安装和启动
- 团体程序设计天梯赛-练习集 -- L3-010. 是否完全二叉搜索树
- pta--哈利波特的考试
- win10分盘
- UVA 11401 Triangle Counting [递推]
- 第30章 混编模式(1)
- css3多重背景详解
- 二分应用--衣服晾干问题
- 浅谈MySql的存储引擎(表类型)
- 上下布局——内容内撑
- 【YMGJ 4】APP-----长度不能小于 0
- Mybatis深入了解(六)----关联查询(高级映射)
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 计算表达式
- BZOJ 2342 [Shoi2011]双倍回文
- 上下布局——内容外撑
- AndroidManifest.xml作用
- markdown 删除线