可以使用newusers命令来批量完成,该命令需要先行建立新用户列表,该列表需要和/etc/passwd文件格式相同,格式如下
linuxidc:x:501:501:linuxidc:/home/linuxidc:/bin/bash
新用户列表创建完毕之后,使用newusers 列表文件.txt 的方式来批量创建
newusers命令创建完用户后,可以使用chpasswd命令来批量为创建的用户设置密码,该命令需要先行创建密码列表,格式如下
linuxidc:123456
密码列表创建完毕之后,使用chpasswd < 密码列表.txt 的方式来批量设置密码
以下为.sh的脚本,也可以实现同样的功能
#!/bin/bash
while read user passwd
do
useradd $user && echo “$user:$passwd” | chpasswd
done < /home/bubu/shell_test/useradd/userlist.txt
echo “all users are created!”
Shell 字符串操作
假设有变量 var=http://www.linuxidc.com/123.htm
一 # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.linuxidc.com/123.htm
二 ## 号截取,删除左边字符,保留右边字符。
echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.linuxidc.com/
结果是 123.htm
三 %号截取,删除右边字符,保留左边字符
echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://www.linuxidc.com
四 %% 号截取,删除右边字符,保留左边字符
echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:
五 从左边第几个字符开始,及字符的个数 echo ${var:0:5} 其中的 0 表示左边第一个字符开始,5 表示字符的总个数。 结果是:http: 六 从左边第几个字符开始,一直到结束。 echo ${var:7} 其中的 7 表示左边第8个字符开始,一直到结束。 结果是 :www.linuxidc.com/123.htm 七 从右边第几个字符开始,及字符的个数 echo ${var:0-7:3} 其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。 结果是:123 八 从右边第几个字符开始,一直到结束。 echo ${var:0-7} 表示从右边第七个字符开始,一直到结束。 结果是:123.htm 注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
该方法截取字符串总结如下:
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
———————
basename命令 与 dirname命令
basename 目录全路径
返回如下
[root@www.linuxidc.com /home/bubu]# basename /usr/local/mysql/bin/
bin
dirname 目录全路径
返回如下
[root@www.linuxidc.com /home/bubu]# dirname /usr/local/mysql/bin/
/usr/local/mysql
——————————-
a=”string”
获取当前字符串个数
expr length $a
6
查看子字符在字符串中的位置
expr index $a “i”
4
字符串中获取子字符串
expr substr “$a” 2 3
tri