Shell脚本个例

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

在这里插入图片描述

执行效果如下
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指剑

捐点钱吧,小笼包8元一笼,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值