
函数名(){
指令序列
......
}
调用方法:直接写函数名即可调用
格式:${变量名:起始位置:长度}
替换出现的第一个:${变量/旧/新}

替换所有出现的:${变量//旧/新}

注意:这里的新可以不写,如果不写的话,就相当于空,等同与删除的效果
直接掐:${变量#要删除的子串}

最短匹配删除:${变量#*关键词}
也就是从左往右删,删到第一个和关键词匹配的地方

最长匹配删除:${变量##*关键词}
也就是从左往右删,删到最后一个和关键词匹配的地方

直接去尾:${变量%关键词}

最短匹配去尾:${变量%关键词*}

最长匹配去尾:${变量%%关键词*}

格式:${var:-str}
#!/bin/bash
_pwd=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 #存放密码的库
pwd="" #最终的八位密码
# 先编写生成8位随机密码的函数
password(){
for i in {1..8}
do
n=$[RANDOM%62] #得到0-61中的随机数
pwd_1=${_pwd:n:1}
pwd=$pwd$pwd_1 #两个变量可以直接拼接在一起
done
}
password #调用函数,生成八位密码
useradd $1
echo $pwd | passwd --stdin $1
脚本运行结果如下:

#!/bin/bash
_pwd=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 #存放密码的库
pwd="" #最终的八位密码
# 先编写生成8位随机密码的函数
password(){
for i in {1..8}
do
n=$[RANDOM%62] #得到0-61中的随机数
pwd_1=${_pwd:n:1}
pwd=$pwd$pwd_1 #两个变量可以直接拼接在一起
done
}
for i in $* #遍历所有的位置参数
do
password #调用函数,生成八位密码
useradd $1
echo $pwd | passwd --stdin $1
shift #将位置参数左移一下
done
脚本运行结果如下:

