shell 参数替换

今天在分析一个shell脚本的时候遇到了一个变量 ${2:15}。经我查阅shell经典参考书ABS后,得到如下解释:

${var:pos} 变量从位置pos开始扩展。
说得很抽象,我就自己弄了个例子:

[root@localhost ~]# a=12345
[root@localhost ~]# echo ${a:2}
345
[root@localhost ~]# echo ${a:3}
45

结果一目了然,就是取某个变量开始多少个位置后的东西。
顺便再学习几个知识点:
mv $filename ${filename%$1}$2
从一个改变文件扩展名的脚本中摘取的 $1 是更改前的扩展名,$2 是更改后的扩展名。${filename%$1}的一个是从$1的右边开始,去掉$1。也就是去了扩展名。

随机文章:

发表评论