linux从0到1——shell编程6

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)

1. if 语句

if 语句语法格式:

if condition

then

command1

command2

...

commandN

fi

写成一行(适用于终端命令提示符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

末尾的 fi 就是 if 倒过来拼写

if [ condition ]; then

如果条件为真执行的命令

elif [ condition ]; then

如果第一个条件不成立,且第二个条件成立执行的命令

else

如果所有条件都不成立执行的命令

fi

  • if后面的条件一般是通过 [ ] 来表示,条件里面的内容可以是比较操作符、逻辑判断等。
  • elif是可选的,用来处理多个条件。
  • else是可选的,表示默认情况。

实例一, if-elif-else 语句

#!/bin/bash

输入一个数字

echo "请输入一个数字:"

read num

判断数字的大小

if [ $num -gt 0 ]; then

echo "你输入的是正数"

elif [ $num -lt 0 ]; then

echo "你输入的是负数"

else

echo "你输入的是零"

fi

脚本解释:

  1. read num 用来从用户输入获取一个数字。
  2. if [ $num -gt 0 ] 用来判断数字是否大于零。
  3. elif [ $num -lt 0 ] 用来判断数字是否小于零。
  4. else 表示如果数字既不大于零也不小于零(即为零),则执行该部分的命令。

运行该脚本:

  1. 将脚本保存到一个文件(如 check_number.sh)。
  2. 给脚本执行权限:chmod +x check_number.sh
  3. 运行脚本:./check_number.sh

它会根据用户输入的数字输出相应的提示信息。如果输入的是正数、负数或零,会打印不同的消息。

2 ,for 循环

与其他编程语言类似,Shell支持for循环。for 循环是编程中常用的控制结构之一,用于重复执行一段代码直到满足某个条件。在 Bash 脚本中,for 循环有多种写法,灵活性很高,可以通过遍历数字、数组或文件等来执行任务。

for循环一般格式为:

for var in item1 item2 ... itemN

do

command1

command2

...

commandN

done

写成一行:

for var in item1 item2 ... itemN; do command1; command2... done;

示例 1:遍历一个数字序列

#!/bin/bash

遍历1到5的数字

for i in {1..5}; do

echo "当前数字是: $i"

done

解释:

  • {1..5} 表示数字从 1 到 5,for 循环会依次取出这些数字并执行循环体内的命令。

示例 2:遍历一个数组

#!/bin/bash

定义一个数组

fruits=("苹果" "香蕉" "橙子" "葡萄")

遍历数组

for fruit in "${fruits[@]}"; do

echo "水果: $fruit"

done

解释:

  • ${fruits[@]} 用于获取数组 fruits 中的所有元素。
  • for fruit in "${fruits[@]}" 会依次将数组中的每个元素赋给变量 fruit,并在每次循环时执行循环体内的命令。

示例 3:通过 for 循环读取文件内容

#!/bin/bash

假设文件 "file.txt" 存在

for line in $(cat file.txt); do

echo "读取到的行: $line"

done

解释:

  • cat file.txt 会输出文件 file.txt 的所有内容,for line in $(cat file.txt) 会遍历文件中的每一行。

示例 4:指定步长的 for 循环

#!/bin/bash

从1到10,每次增加2

for i in {1..10..2}; do

echo "当前数字是: $i"

done

解释:

  • {1..10..2} 表示从 1 到 10,每次增加 2。这个语法可以控制步长。

示例 5:C语言风格的 for 循环

#!/bin/bash

传统的C语言风格的for循环

for ((i=1; i<=5; i++)); do

echo "当前数字是: $i"

done

解释:

  • ((i=1; i<=5; i++)) 是一种更接近 C 语言风格的 for 循环语法。
    • i=1 初始化 i 为 1。
    • i<=5 判断条件:如果 i 小于或等于 5,则继续循环。
    • i++ 每次循环后,i 增加 1。

在编程中,循环体循环语句是构成循环结构的两个重要部分。它们共同工作,使得程序能够重复执行某些操作,直到满足特定的条件。为了更清晰地理解它们的关系,我们可以从概念和实际代码结构两方面进行详细解释。

1. 循环语句(Loop Statement)

循环语句是控制程序执行流程的一种语句,它会导致一段代码反复执行。循环语句会根据给定的条件判断是否继续执行某些操作。常见的循环语句有:

  • for 循环:适用于已知迭代次数的情况。
  • while 循环:适用于基于条件判断是否继续执行的情况。
  • until 循环:与 while 循环类似,但它是当条件不成立时继续执行,直到条件成立为止。

基本循环结构:

一般语法结构:

for variable in list; do

循环体

done

解释:

  • for variable in list: 这是循环语句的条件部分,指定循环变量以及要遍历的列表。
  • do: do 后面跟的是循环体,它会在每次迭代时执行。
  • done: done 标记循环的结束。

2. 循环体(Loop Body)

循环体是循环语句的内部部分,是每次循环迭代时实际执行的代码。在 for、while 或 until 循环中,循环体会在每次迭代时被执行。循环体可以包含任意数量的语句,这些语句将根据循环控制条件重复执行。

解释:

  • 循环体的内容:可以是简单的命令、条件判断、变量更新等,具体取决于你希望在每次迭代中完成什么任务。
  • 循环体的作用:是执行具体的操作,通常是对某些数据进行处理或执行某些任务。

3. for 循环中的循环体和循环语句

示例:for 循环

for i in 1 2 3 4 5; do

echo "当前数字是: $i" # 这是循环体

done

解释:

  • for i in 1 2 3 4 5: 这是循环语句的部分,表示从 1 到 5 遍历。
  • echo "当前数字是: $i": 这是循环体部分。每次循环时,都会输出当前的数字。

在此例中:

  • for 是循环语句。
  • echo 命令是循环体。
相关推荐
海鸥81几秒前
在 k8s中查看最大 CPU 和内存的极限
linux·容器·kubernetes
森焱森3 分钟前
AArch64架构及其编译器
linux·c语言·单片机·架构
rkmhr_sef13 分钟前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
Lin桐31 分钟前
②Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网
linux·网络协议·tcp/ip·网络安全·缓存·信息与通信·信号处理
罗技1231 小时前
Easysearch 使用 AWS S3 进行快照备份与还原:完整指南及常见错误排查
linux·云计算·aws·es·easysearch
anguruanjian1 小时前
安固软件指南:确保外发文件安全的全面策略
服务器·网络·安全·企业微信·安固软件
孙同学_1 小时前
【Linux篇】调试器-gdb/cgdb使用
linux·运维·服务器
自由鬼1 小时前
免费开源抓包工具Wireshark介绍
运维·服务器·网络·测试工具·网络安全·wireshark
irisMoon061 小时前
mac本地代理nginx,解决跨域问题
linux·nginx·macos
汤姆和杰瑞在瑞士吃糯米粑粑2 小时前
【Linux学习篇】--开发工具第一期
linux·运维·学习