首页 > 系统相关 >shell编程(五):条件判断和循环结构

shell编程(五):条件判断和循环结构

时间:2024-11-26 09:04:25浏览次数:8  
标签:do shell 编程 echo num done 循环体 循环

声明:学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章。笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!

一、IF条件判断和循环结构

1、条件判断

(1)-eq(相等)

if [ 3 -eq 5 ]; then
echo 3=5
else
echo 3!=5
fi

运行结果:

(2)-lt(小于)

if [ 3 -lt 5 ]; then
echo 3lt5
else
echo 3gt5
fi

运行结果:

(3)-gt(大于)

if [ 3 -gt 5 ]; then
echo 3大于5
else
echo 3不大于5
fi

运行结果:

(4)-ne(不等于)

if [ 3 -ne 5 ]; then
echo 3不等于5
else
echo 3等于5
fi

运行结果:

2、If条件判断综合应用

#!/bin/bash
a=10
b=20
if [ $a -eq $b ]; then
echo a等于b
elseif [ $a -gt $b ]
echo a大于b
else [ $a -lt $b ]
echo a小于b
fi

运行结果:

二、循环结构

1、for循环

(1)先看一个for循环

for num in 1 2 3 4 5
do
  echo 当前的数字是:$num
done

运行结果:

(2)代码解析

for num in 1 2 3 4 5:这是 for 循环的开头部分,定义了循环的控制变量为 num,并指定了值列表为 1 2 3 4 5。意味着在每次循环迭代过程中,会依次从这个值列表里取出一个值,赋值给变量 num,然后执行后续的循环体语句。

do 和 done:这两个关键字界定了循环体的范围。do 标志着循环体语句开始的位置,done 则表示循环体结束。循环体中的语句会根据循环控制变量 num 的不同取值,被多次重复执行。

(3)其他写法

写法一:

for num in `seq 1 5` #注意这里的符号
do
  echo 当前的数字是:$num
done

写法二:

for num in $(seq 1 5)
do
  echo 当前的数字是:$num
done

写法三:

for (( num = 1; num <= 5; num++ ))
do
  echo 当前的数字是:$num
done

2、while循环

(1)先看一个while循环

i=1
while (( $i<=5 ))
do
echo $i
(( i++ ))
done

执行结果:(这里要用bash脚本解释器执行,否则会报错)

(2)另一种写法

i=1
while (( $i<=5 ))
do
echo $i
let "i++"
done

执行结果:

3、until循环

(1)先看一个代码

i=0
until [ ! $i -lt 10 ]
do 
echo $i
((i++))
done

这段代码的意思是当i不小于10时,输出i的值

执行结果:

(2)case语句

read -p "请输入一个数字:" i
case $i in
1)echo 您输入的数字是1
;;
2)echo 您输入的数字是2
;;
*)echo 您输入是其他数字是
;;
esac

运行结果:

标签:do,shell,编程,echo,num,done,循环体,循环
From: https://blog.csdn.net/zakefine/article/details/144049722

相关文章

  • VulnHub-Sick0s1.1解法二shellshock漏洞
    免责声明本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动,您将独自承担全部法律责任。本博客明确表示不支持、不鼓励也不参与任何形式的......
  • Java编程----利用Map集合设计一个车站上下车的程序
    1.将以下车站对应关系的数据存储到map集合中,key:表示站编号,value:表示站名,并遍历打印(可以不按顺序打印):2.计算地铁票价规则:总行程3站内(包含3站)收费3元,3站以上但不超过5站(包含5站)的收费4元,5站以上的,在4元的基础上,每多1站增加......
  • Java编程学习五
    一、数组的缺陷:二、集合框架三、Vector类四、ArrayList集合五、LinkedList集合六、泛型七、HashSet八、HashMap一、数组的缺陷:1.数组存在定容问题,一旦定义长度,就固定了容量,有时候定义的数据量不一定,很难保证容量不越出;如果需要存储更多或更少的元素,可能需要创建一个新......
  • Java编程学习六
    javaIO操作:Java中,Io操作主要是指使用Java进行输入和输出操作。Java中所有的IO机制都是基于数据流进行输入输出的。这些数据流表示了字符或者字节数据的流动序列。在Java中进行io操作,通常需要用到Java.io包中的类。比如说fiel类,用于表示文件和目录路径名的抽象表示形式。。......
  • 微信小程序导航方式详解:声明式导航与编程式导航
    微信小程序导航方式详解:声明式导航与编程式导航引言在微信小程序的开发中,页面导航是实现用户交互的重要组成部分。小程序提供了两种主要的导航方式:声明式导航和编程式导航。了解这两种导航方式的特点、使用场景及其优缺点,对于提升小程序的用户体验和开发效率至关重要。本......
  • 高性能计算-ARM(neon)向量化优化(SIMD)和循环展开效率对(14)
    1.目标对数组求和,对比ARM(neon)向量化优化(SIMD)和循环展开,还有O0O1优化的效率对比。2.测试代码#include<arm_neon.h>#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN1024000int32_tneonSum(int32_t*arr,intn){//保存计算元素向量......
  • shell编程(完整版)
    目录一、shell脚本解释器二、shell脚本的执行三、变量的使用四、永久环境变量按用户设置永久环境变量文件路径:示例步骤:删除永久环境变量五、脚本程序传递参数怎么实现六、用编程进行数学运算shell中利用expr进行运算运算与变量结合1.变量赋值和基本运算2.使用e......
  • 从0学网安之shell(1)
    声明!学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站......
  • 【数据结构】双向链表、单向循环链表、双向循环链表、栈、链栈
    目录一、双向链表定义类和封装函数以及测试样例如下:注意事项:二、循环链表单循环列表的类和函数封装如下:注意事项: 三、双向循环链表结点类和双循环链表的定义部分函数封装之判空和尾插双循环链表遍历双循环链表尾删完整测试以及结果:四、栈顺序栈顺序栈本质以及......
  • dom 元素应用 + for 循环应用
    文章目录元素获取应用getElementById与jquerydom元素的属性dom元素递归循环以及定向查找查找某DOM元素下符合特定条件的所有元素(以查找所有具有特定类名的元素为例)查找某DOM元素下的特定元素(以查找具有特定`id`的元素为例)for循环应用for中break,continue以及......