Shell脚本个例
原创
©著作权归作者所有:来自51CTO博客作者指剑的剑的原创作品,请联系作者获取转载授权,否则将追究法律责任
1、从列表文件中读取用户名,批量自动创建多个用户并设置密码。
创建用户列表,用户密码
#vi userlist
#vi passwd
编写useradd脚本,代码如下
#vi useradd.sh
#!/bin/sh
//执行器请添加700权限
for user in `cat /root/userlist`
do
useradd $user
echo "123456" | passwd --stdin $user //此处暂时设置初始密码123456
echo "password load"
done
chpasswd < /root/passwd //调用chpasswd修改文本中密码
pwconv
cat /root/passwd
执行效果如下:
2、从列表文件中读取主机IP地址,逐个测试是否在线。
1、创建主机IP地址列表文件
#vi ipaddrs
2、编写测试脚本
#vi fping.sh
#!/bin/sh
HLIST=$( cat /root/ipaddrs )
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
if [ $? -eq 0 ] ; then
echo "$IP is OK"
else
echo "$IP is Down"
fi
done
测试效果如下:
3、随机生成一个0~999的整数,判断并提示用户输入的值过高或过低,只有当用户猜中才结束程序。
#vi guess.sh
#!/bin/sh
NUMBER=$(expr $RANDOM % 1000)
TIMES=0
echo "数字为0-9999之间,猜猜看是多少?"
while true
do
read -p "请输入你猜测的数字:" INT
let TIMES++
if [ $INT -eq $NUMBER ] ; then
echo "恭喜你答对了,实际上数字是: $NUMBER"
echo "你总共猜测了 $TIMES 次"
exit 0
elif [ $INT -gt $NUMBER ] ; then
echo "你猜的太高了"
else
echo "你猜的太低了"
fi
done
实际运行如下:
4、提示用户输入一个字符,判断该字符是字母、数字或特殊字符。提示用户输入一个字符并将其赋值给变量KEY ,判断变量KEY为何种字符后分别输出是字母、数字还是其他字符。
vi judge.sh
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "你输入的是字母"
;;
[0-9])
echo "你输入的是数字"
;;
*)
echo "你输入的是空格、功能键或其他控制字符"
esac
实际运行如下:
5、每隔5分钟检查指定的用户是否登陆。
查看当前用户登陆 输入 w,如下
#vi check.sh
#!/bin/bash
while :
do
if w|sed '1,2'd|awk '{print $1}'
then
echo "用户$1已经登录系统"
exit
fi
sleep 30
done
添加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/bash
dir=/root/rename
for file in $dir/*
do
base=${file%.*}
mv $file ${base}.doc
done
执行效果如下