4.5_shell的执行流控制

##1.for语句##

(1)for语句作用

为循环执行动作

(2)for语句结构

for         定义变量

do         使用变量,执行动作

done     结束标志 

(3)for语句的基本格式

格式1

格式1:`#!/bin/bash` 
`for WESTOS in $(seq 1 2 10)` 
`do` 
`echo $WESTOS` 
`done` 

格式2 

格式2:
`for WESTOS in westos linux lee` 
`do` 
`echo $WESTOS` 
`done` 

格式3

格式3:
`for WESTOS in {10..1}`
`do` 
`echo $WESTOS` 
`done`

 

格式4

格式4: 
`for ((WESTOS=0;WESTOS<10;WESTOS++))` 
`do` 
`echo $WESTOS` 
`done`

脚本练习:

check_host.sh

用此脚本检测10台与您当前主机直连主机是否网络通常

如果网络通常请显示主机的ip列表

##2.条件语句##

(1)while...do语句

######作用:

条件为真执行动作

######语句结构:

`while ture`         <!--条件为真-->

`do`                    <!--条件成立所做循环动作-->

`done`                <!--结束-->

(2)until...do 语句

######作用:

条件为假执行动作

######语句结构:

`until false`             <!--条件为假-->

`do`                        <!--条件不成立所做循环动作-->

`done`                    <!--结束-->

 (3)if...then...elif...then...else...if 语句

######作用:

多次判定条件执行动作

######语句结构:

`if`                               <!--首次判定-->

`then`                          <!--条件成立执行动作-->

`elif`                            <!--当首次判定不成立时再次判定-->

`then`                          <!--条件成立执行动作-->

`...`                              <!--else if可以执行多次-->

`else`                          <!--所有条件不成立执行动作-->

`fi`                               <!--结束-->

 

#### 脚本练习:

user.sh判断用户类型

please input username: linux

linux不存在时请输出

please input password:123

建立linux用户并设定密码为123

用户存在时判断用户类型

此脚本会一直询问直到用户输入exit为止

 ##3.case##

case $1 inword1|WORD1) action1 ;;word2|WORD2)action2 ;; *)action3 
esac 

######脚本练习:

输入userctrl add

Please input username:lee

lee is exist    #用户已存在

Please input passsword:123  ##用户不存在

lee is created

输入userctrl del

Please input username:lee

lee is not exist  #用户不存在

Please input passsword:123  #用户已存在

lee is deleted

如果输入没加add或del

ERROR:Please input add|del following userctrl!!

##4.expect##

问题脚本

#!/bin/bash 
read -p "what's your name:" NAME 
read -p "How old are you: " AGE 
read -p "Which objective: " OBJ 
read -p "Are you ok? " OK 
echo $NAME is $AGE\'s old study $OBJ feel $OK

 

应答脚本

#!/usr/bin/expect 
set timeout 1 
set NAME [ lindex $argv 0 ] 
set AGE [ lindex $argv 1 ] 
set OBJ [ lindex $argv 2 ] 
set FEEL [ lindex $argv 3 ] 
spawn /mnt/ask.sh 
expect {"name"           { send "$NAME\r";exp_continue }"old"            { send "$AGE\r";exp_continue }"objective"      { send "$OBJ\r";exp_continue }"ok"             { send "$FEEL\r" }
}
expect eof

 

将expect和shell环境融合在一起:

脚本练习

host_name.sh

检测192.168.1.1-192.168.1.10网络是否开启

如果网络正常请显示主机名

格式如下

ip 主机名称

例如:192.168.1.1为开启状态主机名为westos_student1.westos.org

显示westos_student1.westos.org

##5.脚本中的控制器##

contiue   ##终止当次循环提前进入下个循环

break     ##终止当前所在语句所有动作进行语句外的其他动作

exit         ##脚本退出

return     ##提前结束函数,函数之外依然进行

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工程师的自我修养】前言

一、为什么大家不帮我&#xff1f; 九年义务教育4年大学&#xff0c;学生早已习惯了有个老师带着&#xff0c;在学校里敢于问问题的同学是好学的、上进的。但在社会中问问题往往是受到冷落的、需要低声下气的。从天堂到地狱的强烈落差&#xff0c;是最让毕业生无所适从的。为什…

OpenHarmony实战开发——引入开源C/C++库之Har包里的NDK

Har 包 HAR&#xff08;Harmony Archive&#xff09;是静态共享包&#xff0c;可以包含代码、C 库、资源和配置文件。通过 HAR 可以实现多个模块或多个工程共享 ArkUI 组件、资源等相关代码。HAR 不同于 HAP&#xff0c;不能独立安装运行在设备上&#xff0c;只能作为应用模块…

如何查看自己的电脑是否有(支持)无线网卡驱动

要查看自己的电脑是否支持无线网卡驱动,可以按照以下步骤进行检查: 打开"设备管理器" - 在Windows 10/11中,可以在搜索栏输入"设备管理器"打开它 - 在旧版Windows系统中,可以通过"控制面板"->"“系统和安全”->""系统&quo…

python连接SQL Server数据库的几点建议

1、用常规的做法可能不行&#xff0c;如 用 pymssql&#xff0c;各种折腾&#xff0c;连不上很正常&#xff0c;常用的帖子见这个&#xff1a; pymssql连接sql server一直报错解决方法&#xff08;pymssql._pymssql.OperationalError: (20009, b‘DB-Lib error message 20009…

ansible 深入介绍之 主机清单与playbook

目录​​​​​​​ 一 inventory 主机清单 1&#xff0c;主机清单 是什么 2&#xff0c;主机清单 定义方式 2.1 自定义主机端口 2.2 定义 范围ip 地址 2.3 定义 拥有相似的主机名 3&#xff0c; inventory 中的变量 3.1 常见 变量 3.2 主机变量 3.3 组变量 3.…

c语言练习5.8

1.分析代码 VS开发环境调试下面的代码&#xff0c;画图解释下面代码的问题 #include <stdio.h> int main() {int i 0;int arr[] {1,2,3,4,5,6,7,8,9,10};for(i0; i<12; i){arr[i] 0;printf("hello bit\n");}return 0; } 分析: 2.喝汽水问题 喝汽水&a…

嘉楠堪智 CanMV K230 进行 Linux、RT-smart 系统开发

本文记录学习、使用 K230 SDK 进行 Linux、RT-smart 系统的开发的一些关键步骤&#xff0c;如何获取系统源代码&#xff0c;如何配置环境&#xff0c;如何使用 Docker 进行编译&#xff0c;获得系统文件。 具体详细的教程&#xff0c;可以学习 CanMV K230 教程。 目录 一、S…

区间合并,CF 1102E Monotonic Renumeration

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1102E - Codeforces 二、解题报告 1、思路分析 我们不难发现对…

如何测试计算机的内存是否存在问题?这里提供两种方法

如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11、10和7附带的隐藏系统工具,或者下载并启动更高级的工具。 内存测试工具的工作原理 计算机的随机存取存储器(内存)是其工作存储器。你的计算机的操作系统和应用程序不断地将…

2024.5.6 —— LeetCode 高频题复盘

目录 283. 移动零153. 寻找旋转排序数组中的最小值468. 验证IP地址224. 基本计算器739. 每日温度138. 随机链表的复制47. 全排列 II207. 课程表LCR 125. 图书整理 II 283. 移动零 题目链接 Python class Solution:def moveZeroes(self, nums: List[int]) -> None:"&q…

.net 6.0 框架集成ef实战,步骤详解

一、代码框架搭建 搭建如下代码架构: 重点含EntityFrameworkCore工程,该工程中包含AppDbContext.cs和数据表实体AggregateObject 1、AppDbContext 代码案例 //AppDbContext 代码案例using Microsoft.EntityFrameworkCore;namespace EntityFrameworkCore {public class Ap…

思通数科大模型在智能数据查询系统中的深度应用:销售数据分析的革新

在企业决策支持系统中&#xff0c;销售数据分析占据着举足轻重的地位。思通数科的大模型技术&#xff0c;结合自然语言处理&#xff08;NLP&#xff09;和机器学习&#xff0c;为智能数据查询系统提供了强大的分析能力。本文将详细描述思通数科大模型在销售数据分析中的应用&am…

2024 GESP6级 编程第一题 游戏

题目描述 你有四个正整数 &#xff0c;并准备用它们玩一个简单的小游戏。 在一轮游戏操作中&#xff0c;你可以选择将 减去 &#xff0c;或是将 减去 。游戏将会进行多轮操作&#xff0c;直到当 时游戏结束。 你想知道游戏结束时有多少种不同的游戏操作序列。两种游戏操作…

C++ Primer 中文版(第 5 版)- 第一单元练习

第一单元 练习 1.1 编写程序&#xff0c;在标准输出上打印Hello, World。 #include <iostream>int main(int argc, const char * argv[]) {std::cout << "Hello, ceshi!\n";return 0; }练习 1.2 我们编写程序使用乘法运算符*&#xff0c;来打印两个数…

科沃斯,「扫地茅」荣光恐难再现

作者 | 辰纹 来源 | 洞见新研社 科沃斯恐怕已经很难再回到被市场誉为“扫地茅”时的荣光了。 不久前&#xff0c;科沃斯发布2023年财报&#xff0c;报告期内营业收入155亿&#xff0c;同比仅增长1.16%&#xff0c;归母净利润6.12亿元&#xff0c;同比下降63.96%&#xff0c;直…

20240508请问GTX2080TI的300和300A核心的差异?

20240508请问GTX2080TI的300和300A核心的差异&#xff1f; 在拼多多/淘宝上&#xff0c;GTX2080TI的300A核心的会比300核心的贵100&#xffe5;左右。 但是怎么区分呢&#xff1f; 300a核心和300请问怎么区分呢&#xff1f;[嘻嘻] devicr ID diviceid 1e07是300a 1e04是300 Gp…

【文章转载】ChatGPT 提示词十级技巧: 从新手到专家

学习了微博网友宝玉xp老师《ChatGPT 提示词十级技巧: 从新手到专家》 个人学习要点&#xff1a; 1、关于提示中避免使用否定句&#xff0c;播主说&#xff1a;“没有人能准确解释为什么&#xff0c;但大语言模型在你告诉它去做某事时&#xff0c;表现似乎比你让它不做某事时更…

Java进阶05 时间API异常

Java进阶05 一、递归算法 方法直接&#xff08;自己调自己&#xff09;或间接&#xff08;方法调其他方法&#xff0c;其他方法又回调自己&#xff09;调用自身 1、递归思想 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。需要注意&#xff0c;设计递…

JavaSE——方法详解

1. 方法的概念 方法就是一个代码片段 . 类似于 C 语言中的 " 函数 " 。 方法存在的意义 : 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用, 一份代码可以在多个位置使用. 3. 让代码更好理解更简单. 4. 直接调用现有方法开发, 不…

QT实战百度语音识别

前言 随着学习的深入&#xff0c;感觉愈发缺乏满足感。刚好看到微信语音转文字的功能&#xff0c;经网上查询&#xff0c;发现可以使用 QT 百度语音识别技术 实现这一功能。当然&#xff0c;由于使用的 QT 和 百度语音识别&#xff0c;那么看不到一些具体的底层实现&#xff…