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 命令是循环体。
相关推荐
Who_Mr.Lin37 分钟前
【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题
linux·运维·centos
我是唐青枫1 小时前
Linux nc 命令详解
linux·运维·服务器
张丹 新叶之扉1 小时前
图片预览 图片上传到服务器
服务器·前端·html5·js
南东山人1 小时前
关于内核编程的一些笔记
linux·笔记
ejinxian1 小时前
Windows 系统上构建 Linux 应用
linux·运维·服务器·red hat
Java 第一深情1 小时前
详细教程-Linux上安装单机版的Hadoop
linux·运维·hadoop
MC何失眠1 小时前
泷羽sec-----shell编程(完结)
linux·学习·网络安全
Linux运维技术栈2 小时前
ELK配置索引清理策略
linux·运维·elk
44漏洞观察员2 小时前
linux实战-黑链——玄机靶场
linux·运维·服务器·web安全·网络安全
风虎云龙科研服务器2 小时前
GPU服务器厂家:科研服务器领域机遇与博弈,AMD 新UDNA 架构
运维·服务器·架构