目录
1、字符串的处理机制
1.1字串的截取
语法格式:
${变量:起始位置:长度}
echo ${#变量} #表示输出变量的长度
如果在变量后只输入一个值,表示起始位置到最后
如果长度为负数表示,从起始位置截取到倒数第几位
1.2字串的替换
替换一个结果: ${变量/旧字串/新字串}
替换全部结果: ${变量//旧字串/新字串} #将所有的某个字符替换成另一个字符
1.3字串的掐头
从左往右,最短匹配删除 ${变量#关键词}
提示:对变量掐头不会改变变量原有的值
从左往右,最长匹配删除 ${变量##关键词}
1.4字串的去尾
从右往左,最短匹配删除 ${变量%关键词}
提示:对变量去尾不会改变变量原有的值
从右往左,最长匹配删除 ${变量%%关键词}
1.5批量修改文件的扩展名
修改一个文件的扩展名
mv a.txt a.doc
批量修改
rename1.sh文件内容如下:
#!/bin/bash
for i in $(ls *.txt)
do
mv $i ${i%.*}.doc
done
或者
rename2.sh文件内容如下:
#!/bin/bash
for i in $(ls *.$1)
do
mv $i ${i%.*}.$2
done
2、变量初始化
变量有值,则返回该变量的值,
变量无值,则返回初始值
格式:${变量:-关键词}
2.1创建系统用户
user.sh文件内容如下
#!/bin/bash
read -p "请输入用户名:" iname
if [ -z "$iname" ];then
echo -e "\033[32m未输入用户名,脚本将退出……\033[0m"
exit
fi
read -p "请输入密码:" ipass
ipass =${ipass:-123456}
useradd "iname"
echo "$ipass" | passwd --stdin "iname"
与之前创建用户的不同之处在于设置了默认的密码,注意该文件最好在其他虚拟机使用,因为Ubuntu不支持stdin语句。