字符串截取的方法
方法一:使用${}表达式
格式:${var:起始位置:长度}
方法二:使用expr substr
格式:expr substr "$var" 起始位置 长度
方法三:使用cut工具
格式:echo $var | cut -b 起始位置 结束位置
取目录位置
格式:dirname "字符串"
取文档的基本名称
格式:basename "字符串"
字符串替换的方法
只替换第一个匹配的结果
格式:${var/old/new}
替换全部匹配的结果
格式:${var//old/new}
字符串掐头
从左向右,最短匹配删除
格式:${变量名#*关键词}
从左向右,最长匹配删除
格式:${变量名##*关键词}
字符串去尾
从右向左,最短匹配删除
格式:${变量名%关键词*}
从右向左,最长匹配删除
格式:${变量名%%关键词*}
批量修改文件后缀名
[lin@shidai ~]$ cat mv.sh
#!/bin/bash
for FILE in *.doc
do
mv $FILE ${FILE%.doc}.txt
done
变量初始值的检测及设置
取值,${var:-word}
若变量var已经存在且非null,则返回$var的值
否则返回临时字符串word,变量var值不变
赋值,${var:=word}
若变量var已经存在且非null,则返回$var的值
否则返回字符串word,且把word赋值给var变量
shell数组定义/赋值
方法一:整体赋值
格式:数组名=(value1 value2 value3)
示例:VU=(user1 ftp mail python)
方法二:为单个元素赋值
格式:数组名[下标]=值
示例:VU[0]=ftp,VU[1]=mail,VU[2]=python
输出数组元素
获取单个元素
格式:${数组名[下标]}
获取所有元素
格式:${数组名[@]}
获取数组元素个数(长度)
格式:${#数组名[@]}
获取连续的多个数组元素
格式:${数组名[@]:起始下标:元素个数}
正则表达式
............................