Shell脚本个例一

简介: 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

在这里插入图片描述

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

目录
相关文章
|
3天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
14 2
|
24天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
41 17
|
24天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
35 12
|
22天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
34 8
|
23天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
28天前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
1月前
|
存储 Shell 数据安全/隐私保护
minio一键安装脚本分享(shell和python)
minio一键安装脚本分享(shell和python)
43 0
|
1月前
|
关系型数据库 Shell 数据库
postgres14一键安装脚本分享(shell和python)
postgres14一键安装脚本分享(shell和python)
27 0
|
1月前
|
监控 Shell Linux
在Linux中,如何使用shell脚本检测磁盘使用率?
在Linux中,如何使用shell脚本检测磁盘使用率?
|
1月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?