目录
一、循环语句之for语句
1.for语句的结构
概述
读取不同的变量值,用来逐个执行同一组命令。
格式
for 变量名 in 取值列表
do
命令序列
done
例:
for 收件人 in 邮件地址列表
do
发送邮件
done
举例说明
如上图所示,为最基础的两个for循环结构,分别展示了一到九和a到g通过for循环依次将取值表示出来 。
2.for语句应用示例
批量增加用户
- 如图所示,创建一个脚本文件demo10.sh
- #!/bin/bash为注释器
- seq 为命令,表示产生从某个数到另外一个数之间的所有整数,seq 3表示为一到三所有整数
- useradd zrk$i
- echo "123456"|passwd --stdin zrk$i
- 创建用户,并将123456赋予其作为密码
给demo10.sh赋予权限,并进行运行,查看结果。验证之后未发现问题,实验成功。
进阶之批量增加用户
首先,创建一个txt文本,在其中输入所需要的用户名
其次通过cat命令进行查看
- 创建一个脚本文件demo11.sh
- op=`cat /root/user.txt`首先让之前创建的txt文件等于一个值
- useradd $uname 创建命令添加用户
- echo "123456"|passwd --stdin $uname &>/dev/null赋予所创建用户密码123456,为了简洁明了将过程隐藏,结束。
查看脚本是否存在bug,并进行验证,结果正确。
批量删除用户
- 创建脚本demo12.sh,将之前创建的11脚本复制过来/
- 将原先创建命令改为删除命令userdel,查看结果。
- 给12脚本赋权限并执行。
- 查看用户列表,显示之前批量创建的用户已被删除,验证成功。
根据IP地址检查主机状态
创建txt文件,里面输入准备的IP,查看IP 。
- 创建14脚本文件,开始编辑。
- 赋予一个值为之前创建的txt文本。
- 输入命令保留pingIP,并保留四行结果,将过程隐藏。
- 如果满足值为0,则输出结果主机可通,反之不通。
查看结果,四个IP中只有192.168.169.4可通,其余均不通。
密码保护,防暴力破解
- 创建15脚本文件,进行编辑
- 设置密码为12345678,循环次数为3次
- 让用户输入一个值,若与密码相等,则输出密码正确,命令结束。
- 若密码错误,最大可尝试三次,第四次输入密码时自动生成警告,结束循环。
- 运行脚本,输入错误密码,重新输入,第四次时触发警告,结束。
- 重新运行脚本,在第三次输入正确密码,密码正确,结束
- 再次运行脚本,输入正确密码,密码正确,结束。
抽奖
创建txt文件,输入抽奖的四人并进行查看。
- 创建13脚本文件进行编辑
- 取abcd四个数,赋值为0
- 使用for循环语句,令变量小于等于10大于等于1,i++使i的值加一表示
- 取随机数余数为0,1,2,3 加二后将值赋予文本第二列,则lzz用户无法选中。
- 查看四个用户各获取多少次。
运行脚本,查看结果。
二、循环语句之while语句
1.while语句的结构
概述
重复测试某个条件,只要条件成立则反复执行
格式
while条件测试操作
do
命令序列
done
例:
while未猜中正确价格
do
反复猜测商品价格
done
举例
上图为while循环,赋值变量i,如果小于6,输出i,并再次循环直到大于等于6,将此时的结果输出,并进行验证,结果无误。
2.while语句应用示例
1-30不能被2整除的数
- 赋值变量i为1-30,带入while循环中;
- 若i除以2的值不等于0则输出结果,否则加一重新进入循环;
- i值到30结束,输出所有结果,并进行验证,结果无误。
批量添加用户
- 创建一个脚本while3.sh,并进行编辑;
- 赋值用户拆分为两部分,前面为主名q,后面为编号i;
- 令变量i小于等于10,进入while循环;
- 将创建的账户统一赋予密码123456,并将过程隐藏;
- 给脚本添加权限,运行进行验证,结果无误。
猜数字大小
- 创建脚本while4.sh,并进行编辑;
- 设一个正确值为128;
- 让用户随机输入一个数字,如果等于128,正确并结束循环,若大于,输出结果为你猜大了,并再次进入循环;若小于,输出结果为你猜小了,并再次进入循环,直到结果为128为止结束;
- 保存脚本,赋予权限,运行脚本进行验证,结果无误。
三、循环语句之until语句
1.until语句的结构
概述
重复测试某个条件,只要条件不成立则反复执行。
格式
until 条件测试操作
do
命令序列
done
例:
while 未超过10
do
数字依次递增
done
举例说明
- 创建脚本until1.sh脚本,并进行编辑;
- 让变量i等于11 否则i加一再次进入循环,多次循环的数字进行相加直到i等于11为止结束;
- 输出结果,得到1到10的值为55,进行验证,结果无误。
四、shell函数
1.概述
- 将命令序列按格式写在一起
- 可方便重复使用命令序列
2.shell函数定义
[ function ] 函数名(){
命令序列
[return x]
}
3.调用函数的方法
函数名 [参数1] [参数2]
4.举例