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 命令是循环体。
相关推荐
网安大师兄3 分钟前
网络安全(黑客)——自学2025
linux·网络·python·安全·web安全·网络安全·密码学
猫咪-952734 分钟前
Linux常用命令大全
linux·指令
久绊A1 小时前
Linux权限揭秘“Root与Sudo”
linux·运维·服务器
云计算DevOps-韩老师1 小时前
【网络云SRE运维开发】2025第2周-每日【2025/01/11】小测-【第11章NAT理论和实操考试】解析
运维·网络·智能路由器·运维开发·idc运维
黑马金牌编程2 小时前
接上篇基于Alertmanager 配置钉钉告警
linux·grafana·监控·linux运维·钉钉告警·普罗米修斯
✿ ༺ ོIT技术༻2 小时前
Linux:线程的互斥与同步
linux·运维·服务器·开发语言
乐茵安全2 小时前
《系统爆破:MD5易破,后台登录可爆破?》
linux·安全·web安全
爱敲代码的边芙2 小时前
Linux:动态库和静态库
linux·运维·算法
古飞龙2 小时前
使用外网访问在群晖中搭建思源docker
运维·docker·容器