Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Shell脚本(for、while和case语句的应用示例)

Shell脚本(for、while和case语句的应用示例)

作者头像
L宝宝聊IT
发布于 2018-06-20 04:46:37
发布于 2018-06-20 04:46:37
2.5K0
举报
文章被收录于专栏:L宝宝聊ITL宝宝聊IT

一、for循环语句

1、根据姓名列表批量添加用户

步骤:首先创建一个姓名列表 vim /root/users.txt 然后创建脚本vim uaddfor.sh批量添加用户

授权并执行后查看用户是否已创建

2、根据ip地址列表检查主机状态

步骤:首先创建一个ip地址列表文件 vim /root/padds.txt 然后创建脚本vim chkhosts.sh

授权并执行

二、while循环语句

1、批量添加规律编号的用户

步骤:创建vim uaddwhile.sh脚本

授权并执行后查看用户是否已创建

2、猜价格游戏

步骤:创建脚本vim pricegame.sh

授权并执行

三、case分支语句

1、检查用户输入的字符类型

步骤:创建脚本vim hitkey.sh

授权并执行

2、编写系统服务脚本

步骤:编写脚本 vim myprog

授权并执行

四、实验案例

1、编写getarp.sh脚本文件

(1)通过arping命令发送ARP请求,根据反馈结果记录MAC地址。

(2)将网段地址(如192.168.4.)赋值给变量NADD,作为检测地址的前缀。

(3)使用while循环语句,重复检测目标并记录MAC地址,主机地址从1-254。

脚本如下:

[root@localhost ~]# vi getarp.sh

#!/bin/bash

# 1. 定义网段地址、MAC列表文件

NADD="192.168.4."

FILE="/etc/ethers"

# 2. 发送ARP请求,并记录反馈结果

[ -f $FILE ] && /bin/cp -f $FILE $FILE.old //备份原有文件

HADD=1 //定义起始扫描地址

while [ $HADD -lt 128 ]

do

arping -c 2 -w 1 ${NADD}${HADD} &> /dev/null

if [ $? -eq 0 ] ; then

arp -n | grep ${NADD}${HADD} | awk '{print $1,$3}' >> $FILE

fi

let HADD++

done

[root@localhost ~]# chmod +x getarp.sh

[root@localhost ~]# ./getarp.sh //执行检测程序

[root@localhost ~]# cat /etc/ethers //确认记录结果

192.168.4.12 00:0C:29:C3:F8:51

192.168.4.110 00:50:56:C0:00:01

…… //省略部分内容

2、编写scanhost.sh脚本

(1)有很多方法可以检测一个主机是否开启匿名FTP服务,这里采取以wget下载工具访问FTP根目录的方式,若能够成功列表,则视为匿名FTP已开启,否则视为关闭。

(2)通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量TARGET。

(3)使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况。

脚本如下:

[root@localhost ~]# vi scanhost.sh

#!/bin/bash

TARGET=$(awk '{print $1}' /etc/ethers)

echo "以下主机已开放匿名FTP服务:"

for IP in $TARGET

do

wget ftp://$IP/ &> /dev/null

if [ $? -eq 0 ] ; then

echo $IP

rm -rf index.html //删除测试产生的临时文件

fi

done

[root@localhost ~]# chmod +x scanhost.sh

[root@localhost ~]# ./scanhost.sh //执行脚本,确认扫描结果

以下主机已开放匿名FTP服务:

192.168.4.110

192.168.4.129

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 L宝宝聊IT 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用shell脚本辅助运维工作
编写一个getarp.sh的脚本,记录局域网内各主机的MAC地址。 保存到/etc/ethers文件中,若此文件已存在,则先转移进行备份。 每行一条记录,第1列为ip地址,第2列为对应的MAC地址。 编写一个scanhost.sh的扫描脚本,检查有哪些主机开启了ftp服务,扫描对象是/etc/ethers中所有的ip地址。 如下:
小手冰凉
2019/09/10
1.1K0
Linux运维常用shell脚本之用户管理实例
实现要求:创建用户student1到student50,指定组为student组!而且每个用户需要设定一个不同的密码!
菲宇
2022/12/02
3K0
你应该要掌握的34个运维常用Shell脚本!
(15)编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机
入门笔记
2022/06/03
1.7K0
shell脚本实例精讲_shell脚本编程实例
shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。
全栈程序员站长
2022/11/10
1.4K0
100 个 Linux Shell 脚本经典案例解析
1)编写 hello world 脚本#!/bin/bash# 编写hello world脚本echo "Hello World!"2)通过位置变量创建 Linux 系统账户及密码#!/bin/bash# 通过位置变量创建 Linux 系统账户及密码#$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数useradd    "$1" echo "$2"  |  passwd  ‐‐stdin  "$1"3)备份日志#!/bin/bash# 每周 5 使用 tar 命令备份/var/log 下的所有日志
星哥玩云
2022/07/09
3.5K0
Shell脚本个例
1、从列表文件中读取用户名,批量自动创建多个用户并设置密码。 创建用户列表,用户密码 #vi userlist
指剑
2022/07/15
3270
Shell脚本个例
shell脚本快速入门之-----循环(for、while、until)
若指定用户不在线(未登陆系统),则每10分钟(实验中为了测试效果,可改为3s)试一次,直至用户登录系统后再发送信息 用户名与消息通过为止参数传递给脚本
不吃小白菜
2020/09/03
1.2K0
shell脚本快速入门之-----循环(for、while、until)
开源部分组内实用运维shell脚本模版
IT运维技术圈
2023/09/07
3160
开源部分组内实用运维shell脚本模版
shell脚本快速入门系列之------条件语句(if、case)
test命令 测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
不吃小白菜
2020/09/03
6090
shell脚本快速入门系列之------条件语句(if、case)
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前36道,后续持续更新)
本小节以几道真题为例,简单讲解与SHELL有关的面试题。在实际工作中,要写的SHELL脚本要复杂得多。
AiDBA宝典
2019/09/29
9160
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前36道,后续持续更新)
4 Linux 高级Shell脚本与用户管理
本文,我们将要学习 Linux 高级 Shell 脚本以及用户管理(重点)。下面,我们将开始探索几个使用的 Shell 脚本,然后介绍 Linux 中的用户管理。
Lemon黄
2023/11/28
3300
4 Linux 高级Shell脚本与用户管理
Linux远程访问及控制(SSH)
1、ssh协议:用于远程登录,端口号:22/tcp 配置文件: 1)服务器端口:/etc/ssh/sshd_config 2)客户端 :/etc/ssh/ssh_config 2、服务器监听选项: UseDNS no :禁用DNS反向解析 PermitRootLogin :允许Root登录 PermitEmyptPasswords:是否允许空密码 AllowUsers/DenyUsers: 允许/拒绝用户访问,不可同时使用,可用@制定允许远程主机 PasswordAuthentication: 启用密
L宝宝聊IT
2018/06/20
4.3K0
Shell脚本应用(if语句的应用示例)
一、条件测试操作 1、文件测试 (1)测试目录/media是否为目录,$?返回值为0,表示存在此目录。 如果$?返回值非0,表示不存在此目录 (2)测试目录是否存在,输出结果更加直观。 输出“yes”
L宝宝聊IT
2018/06/20
1.1K0
使用 shell 脚本批量创建用户
for语句的操作对象为用户指定名称的变量,并通过in关键字为该变量预先设置了一个取值列表,多个取值之间以空格进行分隔。为于do....done之间的命令序列称为循环体。
小手冰凉
2019/09/10
1.6K0
使用 shell 脚本批量创建用户
Shell脚本 – 查看网络接口信息
如果只想查看网络接口名称和相应的MAC地址,请使用以下命令。检查特定的网络接口的MAC地址:
用户7639835
2021/12/03
1.2K0
shell中的for循环用法详解
例:输出0-9以内的随机数–》echo ((RANDOM%10)) 输出1-10以内的随机数–》echo ((RANDOM%10+1))
全栈程序员站长
2022/09/15
2.5K0
shell中的for循环用法详解
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.4K0
101个shell脚本
shell脚本快速入门之-----深入介绍Expect免交互
spawn 启动追踪 —> expect 匹配捕捉关键字 ——> 捕捉到将触发send 代替人为输入指令—> interact /expect eof
不吃小白菜
2020/09/03
2.4K0
学习笔记0618----shell脚本(二)
格式:函数必须要放在最前面,function 后是函数的名字,并且 function 这个单词是可以省略掉的,花括号{} 里面为具体的命令
嘻哈记
2020/11/24
1.7K0
Linux系统shell脚本编程——生产实战案例
在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验。
民工哥
2020/09/16
1.7K0
相关推荐
使用shell脚本辅助运维工作
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档