Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀
O、字符串处理,包括
1、字符串截取
2、字符串替换
3、字符串掐头
4、字符串去尾
一、字符串截取
字符串本身没有变化
0、使用#查看变量长度
echo ${#name}
语法:
${变量:起始位置:长度}
phone=123456789
1、编号从0开始,取得字符串从起始位置开始
echo ${phone:0:3}
2、如果没有长度选项,默认是截取到变量字符串尾
echo ${phone:3}
3、如果长度是负值,表示截取到从右往左的第几位,最后一位算第0位
echo ${phone:0:-2}
1234567
二、字符串替换
字符串本身没有变化
1、单个替换,替换第一个旧字符串
${变量名/旧字符串/新字符串}
2、替换全部结果
${变量名//旧字符串/新字符串}
三、字符串掐头
不影响原变量字符串
1、从左到右,最短匹配删除
${变量名#关键字}
例如:
echo ${A#*:}
将最左边的冒号以及前面的字符串去除
2、从左到右,最长匹配删除
${变量名##关键字}
echo ${A##*:}
将最右边的冒号以及前面的字符串去除
四、字符串去尾
不影响原变量
echo ${A%}
将最右边的冒号以及后面的字符串去除
echo ${A%%}
将最左边的冒号以及后面的字符串去除
*五、批量修改当前文件夹下指定后缀对象的后缀
脚本思路:
使用字符串去尾可以很方便的批量修改文件夹下的文件名。
1、使用ls .txt获取所有指定后缀文件名
2、使用for i in 文件名集合
3、逐一去尾和增加新得后缀,例如.txt改为.doc
为了方便扩展,可以把需要修改的文件的后缀作为参数传入,更加智能。
变量初始化:
变量有值则返回变量的值,无值则返回给与的初始值,有值回值,无值给值。
格式:echo ${变量:-关键词}
1、如果变量时没有值的,只是单纯的给了一个返回值,并不是给变量赋值了。
无值时可以返回一个值
有值时返回本身的值。
2、使用这个命令的特点就是可以稳定返回一个值,可用于接下来的赋值等使用,达到默认值的效果。