红队-shell编程基础(六)

admin 2025年1月13日10:09:48评论3 views字数 3360阅读11分12秒阅读模式

声明

通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负

if for while循环    

1.if条件

vim 1.sh#!/bin/bash

# 定义变量a=10b=20# 进行条件判断if [ "$a" -eq "$b" ]; then         echo "a=b"elif [ "$a" -gt "$b" ]; then         echo "a>b"else         echo "没有符合上述条件"fi
#定义变量a=10b=20

红队-shell编程基础(六)

这部分代码定义了两个变量 a 和 b,并分别给它们赋了。

在这里,a 被赋值为 10,b 被赋值为 20。

在 bash脚本中,通过这种简单的 "变量名 = 值" 的形式就可以完成变量的定义和赋值操作。

进行条件判断

if [ "$a"-eq "$b" ]; thenecho"a=b"elif [ "$a"-gt "$b" ]; thenecho"a>b"elseecho"没有符合上述条件"fi

首先指定使用 bash 作为脚本解释器,接着定义了两个变量 a 为 10、b为20,然后通过条件判断来比较 a 和 b 的值。          若 a 等于 b ,就输出 "a=b"          若 a 大于 b ,就输出 "a>b"          若前面两种情况都不成立,就输出 "没有符合上述条件"

进行条件判断

if ["$a"-eq "$b" ]; thenecho"a=b"elif ["$a"-gt "$b" ]; thenecho"a>b"elif ["$a"-lt "$b" ]; thenecho"a     <b"< span>      </b"<>else         echo"没有符合上述条件"fi

在原有的 if - elif - else 结构基础上,新增了一个elif 条件判断分支:          新增的条件判断语句为 elif ["$a"-lt "$b"]; then 其目的是判断变量 a 的值是否小于变量 b 的值。如果满足该条件就会执行后续的 echo "a     <b"<="" span>     

2.for循环结构

方法一、首先新建一个 1.sh

vim 2. sh

for num in 1 2 3 4 5:doecho"The number is $num"done

整体结构          这是一段使用 for 循环的代码片段,常见于 Shell 脚本(如 bash 脚本)中,用于对一系列的值进行迭代操作循环语句

for num in 1 2 3 4 5  for: 是循环的关键字,用于开启一个 for 循环结构          num: 定义了一个循环变量,在每次循环迭代过程中,这个变量会被赋予不同的值。            in 1 2 3 4 5: 指定了一个值的列表,循环变量num 将会依次取这个列表中的每一个值。也就是说,在这个例子中,num 会先被赋值为 1,然后进行第一次循环;接着 num 会被赋值为 2,进行第二次循环,以此类推,直到 num 取完列表中的最后一个值 5。

循环体 do: 是与 for 循环起始语句配合使用的关键字,它标志着循环体的开始。在 do 和后面的 done 之间的语句就是每次循环时需要执行的操作。

输出语句          echo "The number is $num": echo: 是一个用于在终端输出信息的命令          "The number is $num": 这是一个要输出的字符串,其中 $num 是对前面定义的循环变量 num 的引用。当循环进行时,每次 num 被赋予不同的值,这里就会输出不同的结果。例如,当 num 被赋值为1时,就会输出 "The number is 1";当 num 被赋值为 2 时,就会输出 "The number is 2" ,依此类推。

循环结束            done: 是for循环的结束关键字,它标志着整个 for 循环过程结束。

总体来说,这段代码的功能就是遍历给定的数字列表 1、2、3、4、5,并在每次遍历到一个数字时,通过 echo 命令输出包含该数字的字符串信息,如 "The number is 1" 、"The number is 2" 等

方法二、首先新建一个 1.sh

for str in"hello wold"doecho$strdone

循环语句          for str in "hello wold"for: 这是循环的关键字,用于启动一个 for 循环结构。          str: 定义了一个循环变量,在循环过程中,这个变量会被赋予不同的值。          "hello wold": 这里指定了一个值的列表,不过在这个例子中,列表里只有一个元素,就是字符串 "hello wold"。所以在整个循环过程中,循环变量 str 只会被赋值这一次,也就是取到的值为“hello wold"。

循环体与输出语句 do: 是与 for 循环起始语句配合使用的关键字,它标志着循环体的开始,在 do 和后面的 done 之间的语句就是每次循环时需要执行的操作。      echo Sstr:echo: 是用于在终端输出信息的命令           $str: 是对前面定义的循环变量 str 的引用。由于在这个循环中,str 只被赋值为 "hello wold",所以当执行 echo $str 时,就会在终端输出 "hello wold"。          循环结束               done: 是 for 循环的结束关键字,它标志着整个 for 循环过程结束

总体而言,这段代码的功能就是将字符串 "hello wold" 赋值给循环变量 str,然后通过 echo 命令将其输出到终端。

3.for循环 例子

首先进入 bash          创建一个文件 如 vim 1.sh代码如下:

for i in `seq 1 100`doecho$idone

或者

for i in $(seq 1 100)    doecho$idone

进入到 bash 环境下 然后执行代码,这两种写法的功能都是一样的都是让i依次取从 1到 100 的值,然后在每次循环中打印出i的值。

for((i=1; i<100; i++))doecho$idone

在 for 循环的双括号语法(())中:          初始化部分i=1 是给循环变量i赋初值为 1。          条件判断部分 i< 100 表示只要i的值小于 100,循环就会继续执行。          迭代部分 i++ 是每次循环结束后让 i 的值自增 1,这样就能实现从 1开始,每次增加 1,直到 i 达到 99(因为当i等于100 时就不满足 i< 100 这个条件了),并在每次循环中通过echo 输出 i 的当前值。

4.while循环

方法一:

i=1while (( $i<=10 ))doecho$i         ((i++))done

变量初始化:首先通过 i=1 这一行,将变量 ì初始化为 1,为后续的循环操作确定起始值。

循环条件判断:while(( $i<=10))是循环的条件判断部分。这里使用了双括号 (()) 语法,它用于进行算术表达式的计算和判断。在每次循环开始前,都会检查 i 的值是否小于等于 10。只要这个条件满足,循环体内部的代码就会被执行

循环体执行内容:在循环体内部,首先通过 echo $i 这一行,将当前i的值输出到控制台,这样就可以看到循环过程中i的变化情况。          接着,通过((i++))这一语句对变量 i 进行自增操作。这里的 (()) 语法同样用于算术运算,i++表示将 i的值增加 1。每次循环结束后,i 的值就会比上一次循环时增加 1,以便在下次循环开始时进行新的条件判断。

方法二:

i=1while(( $i<=10 ))doecho$ilet"i++"done

变量初始化与循环条件判断:这部分和第一种实现方式完全相同。先是通过i=1初始化变量i,然后通过 while(($i<=10))来判断循环是否继续进行,只要i的值小于等于 10,循环就会持续。

循环体执行内容:同样,在循环体中首先通过 echo $i 输出当前 i的值。          不同之处在于对变量 ;进行自增操作的语句。这里使用了let 命令,let "i++" 的作用也是将变量 i 的值增加 1。let 命令用于执行算术运算,它可以接受一个或多个算术表达式作为参数,并对相关变量进行相应的运算操作

总的来说,这两种实现方式都能达到通过 while循环输出1到10的整数的目的,只是在对变量进行自增操作时使用了不同的语法形式,但它们的功能是等效的。

原文始发于微信公众号(泷羽Sec- 火乐):红队-shell编程基础(六)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月13日10:09:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队-shell编程基础(六)https://cn-sec.com/archives/3623001.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息