1、从列表文件中读取用户名,批量自动创建多个用户并设置密码。
创建用户列表,用户密码
#vi userlist
#vi passwd
编写useradd脚本,代码如下
#vi useradd.sh
#!/bin/sh//执行器请添加700权限for user in `cat /root/userlist`douseradd $userecho "123456" | passwd --stdin $user //此处暂时设置初始密码123456echo "password load"donechpasswd < /root/passwd //调用chpasswd修改文本中密码pwconvcat /root/passwd
执行效果如下:
2、从列表文件中读取主机IP地址,逐个测试是否在线。
1、创建主机IP地址列表文件
#vi ipaddrs
2、编写测试脚本
#vi fping.sh
#!/bin/shHLIST=$( cat /root/ipaddrs )for IP in $HLISTdoping -c 3 -i 0.2 -W 3 $IP &> /dev/nullif [ $? -eq 0 ] ; thenecho "$IP is OK"elseecho "$IP is Down"fidone
测试效果如下:
3、随机生成一个0~999的整数,判断并提示用户输入的值过高或过低,只有当用户猜中才结束程序。
#vi guess.sh
#!/bin/shNUMBER=$(expr $RANDOM % 1000)TIMES=0echo "数字为0-9999之间,猜猜看是多少?"while truedoread -p "请输入你猜测的数字:" INTlet TIMES++if [ $INT -eq $NUMBER ] ; thenecho "恭喜你答对了,实际上数字是: $NUMBER"echo "你总共猜测了 $TIMES 次"exit 0elif [ $INT -gt $NUMBER ] ; thenecho "你猜的太高了"elseecho "你猜的太低了"fidone
实际运行如下:
4、提示用户输入一个字符,判断该字符是字母、数字或特殊字符。提示用户输入一个字符并将其赋值给变量KEY ,判断变量KEY为何种字符后分别输出是字母、数字还是其他字符。
vi judge.sh
#!/bin/bashread -p "请输入一个字符,并按Enter键确认:" KEYcase "$KEY" in[a-z]|[A-Z])echo "你输入的是字母";;[0-9])echo "你输入的是数字";;*)echo "你输入的是空格、功能键或其他控制字符"esac
实际运行如下:
5、每隔5分钟检查指定的用户是否登陆。
查看当前用户登陆 输入 w,如下
#vi check.sh
#!/bin/bashwhile :doif w|sed '1,2'd|awk '{print $1}' thenecho "用户$1已经登录系统"exitfisleep 30done
添加crotab命令
#*/5 * * * * root sh /root/check.sh
测试效果如下:
6、当前目录下所有的.txt文件的扩展名修改为.doc。
1、创建测试文件夹,创建测试文件
#mkdir /root/rename
#cd /root/rename
#touch t1.txt t2.txt t3.txt t4.txt
编辑测试脚本
#vi rename.sh
#!/bin/bashdir=/root/renamefor file in $dir/*dobase=${file%.*}mv $file ${base}.docdone
执行效果如下
如果觉得《Shell脚本个例》对你有帮助,请点赞、收藏,并留下你的观点哦!