shell编程之循环语句
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
shell编程之循环语句
一、循环语句
-
在实际工作中经常会遇到某项任务需要多次执行的情况而每次执行时仅仅是处理的对象不一样其他命令相同。例如根据通讯录中的姓名列表创建系统账号根据服务器清单检查各主机的存活状态根据IP地址黑名单设置拒绝访问的防火墙策略等。
-
当面对各种列表重复任务时使用简单的if语句已经难以满足要求而顺序编写全部代码更是显得异常繁琐困难重重。
-
循环语句可以很好的解决类似的问题。
-
循环是一种控制流程的结构用于重复执行一段代码
-
循环的特点
- 简化程序逻辑
- 提高代码的重复利用率
- 提高程序的效率
1.for循环语句
1for循环语句的结构
使用for循环语句时需要指定一个变量及可能的取值列表针对每一个不同的取值重复执行相同的命令序列直到变量值用完退出循环。在这里“取值列表”称为for语句的执行条件其中包括多个属性相同的对象需要预先指定如通讯录、IP黑名单。
for循环语句的语法结构如下所示
for 变量名 in 取值列表
do
命令序列
done
fo语句的操作对象为用户指定名称的变量并通过 in 关键字为该变量与先设置一个取值列表多个取值之间以空格进行分隔。位于 do 和 done 之间的命令列称为‘循环体’其中的执行语句需要引用变量以完成相应的任务。
2for循环的执行流程
首先将列表中的第1个取值付给变量并执行 do…done 循环体之间的命令序列然后将列表中的第2个取值赋给变量并执行循环体中的命令序列……以此类推知道列表中的所有取值用完最后将跳至 done 语句表示结束循环。
3for循环语句应用示例
for 一般格式展示
根据姓名列表批量添加用户
现在有一个存放姓名的列表文件 user.txt
然后我们来编写一个脚本使用for循环
执行脚本看一下成果
执行成功
类c语言格式
创建20个usr用户分别为usr1、usr2、usr3……usr20。
并赋予123456密码
要删除刚刚创建的用户可以写一个删除的脚本
4echo 的常用选项
- echo -n表示不换行输出
- echo -e输出转义字符将转义后的内容输出到屏幕上
- 只有加了-e才能执行下面的转义符
- \b转义后相当于按退格键backspace但前提是“\b”后面存在字符“\b”表示删除前一个字符“\b\b”表示删除前两个字符
- \c不换行输出在“\c”后面不存在字符的情况下作用相当于echo -n但是当“\c”后面任然存在字符时“\c”后面的字符将不会被输出
- \n换行被输出的字符从"\n"处开始另起一行
- \f换行但是换行后的新行的开头位置连接着上一行的行尾
- \v与\f相同
- \t转移后表示插入tab即横向制表符
- \r光标移至行首但不换行相当于使用“\r”以后的字符覆盖“\r”之前同等长度的字符但是当“\r”后面不存在任何字符时"\r"前面的字符不会覆盖
- \\表示插入“\”本身
4双层for循环
例
内层的for循环就是外层for循环的一个命令内层循环结束会继续进行外层的其他命令序列执行完全部的命令序列之后外层for循环进入下一次循环又会重新执行自己的所有命令序列内存for循环就在命令序列之中全部循环之后算命令结束。
2.流程控制语句
- break终止本次循命令余下的循环直接跳过。
- break 2终止2次循命令
- continue跳过本次循环体中余下尚未执行的语句立即进行下一次的循环条件判定可以理解为仅结束本次循环。
注意continue语句并没有使整个循环终止。- continue 2跳过2次
break
continue
break 2
continue 2
3.while循环语句
1while语句结构
- 重复测试某个条件只要条件成立则反复执行
#格式
while 条件测试操作
do
命令序列
done
2while语句应用实例
4.until语句
1until语句的结构
- 重复测试某个条件只要条件不成立则反复执行
until 条件测试操作
do
命令序列
done
2until语句应用实例
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |