前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell脚本个例

Shell脚本个例

作者头像
指剑
发布2022-07-15 14:57:42
3030
发布2022-07-15 14:57:42
举报
文章被收录于专栏:指剑的分享指剑的分享

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

在这里插入图片描述
在这里插入图片描述

#vi passwd

在这里插入图片描述
在这里插入图片描述

编写useradd脚本,代码如下 #vi useradd.sh

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
#!/bin/bash
dir=/root/rename
for file in $dir/*
do
   base=${file%.*}
   mv $file ${base}.doc
done
在这里插入图片描述
在这里插入图片描述

执行效果如下

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vi judge.sh
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档