1、从列表文件中读取用户名,批量自动创建多个用户并设置密码。

创建用户列表,用户密码

#vi userlist

Shell脚本个例_bash


#vi passwd

Shell脚本个例_Shell_02

编写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

Shell脚本个例_bash_03

执行效果如下:

Shell脚本个例_bash_04

2、从列表文件中读取主机IP地址,逐个测试是否在线。

1、创建主机IP地址列表文件

#vi ipaddrs

Shell脚本个例_IP_05

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

Shell脚本个例_IP_06

测试效果如下:

Shell脚本个例_bash_07

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

Shell脚本个例_Shell_08

实际运行如下:

Shell脚本个例_IP_09

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

Shell脚本个例_IP_10

实际运行如下:

Shell脚本个例_IP_11

5、每隔5分钟检查指定的用户是否登陆。
查看当前用户登陆 输入 w,如下

Shell脚本个例_Shell_12

#vi ​​check.sh​

#!/bin/bash
while :
do
if w|sed '1,2'd|awk '{print $1}'
then
echo "用户$1已经登录系统"
exit
fi
sleep 30
done

Shell脚本个例_IP_13

添加crotab命令

Shell脚本个例_Shell_14


#*/5 * * * * root sh /root/check.sh

Shell脚本个例_bash_15

测试效果如下:

Shell脚本个例_Shell_16

6、当前目录下所有的.txt文件的扩展名修改为.doc。

1、创建测试文件夹,创建测试文件

#mkdir /root/rename

#cd /root/rename

#touch t1.txt t2.txt t3.txt t4.txt

Shell脚本个例_bash_17

编辑测试脚本
#vi ​​​rename.sh​

#!/bin/bash
dir=/root/rename
for file in $dir/*
do
base=${file%.*}
mv $file ${base}.doc
done

Shell脚本个例_测试脚本_18

执行效果如下

Shell脚本个例_IP_19