首页 > 系统相关 >shell脚本(七)

shell脚本(七)

时间:2024-11-30 15:33:15浏览次数:11  
标签:脚本 10 shell seq echo while 循环 local

# 学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章

仅用于学习参考,不要越过法律红线 

for 循环

 通过反引号实现自增自减

for i in `seq 1 10`
do
    echo "Current number: $i"
done

拆解与讲解:

(1)for 循环语法:for 变量 in 列表; do 命令; done。在这个例子中,i 是循环变量,seq 1 10生成的数字列表是循环要遍历的内容。

(2)反引号:seq 1 10 会被替换为 seq 1 10 命令的输出,即数字 1 到 10 的序列。反引号是一种命令替换的方式,但在现代
Bash 脚本中,更推荐使用 $() 语法,因为它更易读且能嵌套。

(3)seq 命令:seq 1 10 生成从 1 到 10 的数字序列,每个数字以空格分隔。

(4)循环体:echo “The number is $i” 在每次循环中输出当前的数字 i,前面带有描述性文字。

示例1 使用vim创建lycc.sh文件,将代码输入并保存 

 

通过变量完成自增自减(使用$())

for i in $(seq 1 10)
do
    echo "Number: $i - Squared: $((i * i))"
done

 

使用初始化、条件和迭代(C风格for循环)

#!/bin/bash

factorial() {
    local n=$1
    if [ $n -le 1 ]; then
        echo 1
    else
        local temp=$((n - 1))
        local prev=$(factorial $temp)
        echo $((n * prev))
    fi
}

for ((i=1; i<=10; i++))
do
    fact=$(factorial $i)
    echo "Number: $i - Factorial: $fact"
done

拆解与讲解:

(1)脚本声明:#!/bin/bash 指定脚本使用 Bash 解释器执行。

(2)factorial 函数:

(3)局部变量:local n=1 、 l o c a l t e m p = 1、local temp=1、localtemp=((n - 1)) 和 local prev=$(factorial $temp)
声明了仅在函数内部可见的变量。
递归计算阶乘:如果 n 小于或等于 1,函数返回 1(阶乘的基准情况)。否则,它递归地调用自己来计算 n-1 的阶乘,并将结果与 n 相乘。

C风格for循环

 初始化:i=1 设置循环变量 i 的初始值。
 条件:i<=10 指定循环继续执行的条件。
 迭代:i++ 每次循环结束时将 i 的值增加 1。
 循环体:调用 factorial 函数计算当前数字 i 的阶乘,并输出结果。

示例3

 

while 循环

算术扩展实现自增自减

i=0
while (( i < 10 ))
do
    echo "Current number: $i"
    ((i++))
done

示例4

 

执行算数运算实现自增自减

拆解与讲解:

(1)初始化变量:

 i=0:与上一个例子相同,将变量 i 初始化为 0。

 (2)while 循环条件:

 while (( i < 10 )):同样使用双括号进行算术条件测试。

(3) 循环体:

 echo "Current number: $i":输出当前 i 的值,带有描述性文字。
 let i+=1:使用 let 命令进行算术运算,将 i 的值增加 1。
 注意,这里不需要使用 $ 符号来引用变量 i,因为 let 命令直接接受算术表达式。

(4)循环迭代:

 与上一个例子相同,每次循环结束后回到 while 条件判断处,重新检查 i 是否小于 10,并根据结果决定是否继续执行循环体。
 这里不需要使用 $ 符号来引用变量 i,因为 let 命令直接接受算术表达式。

 

i=0
while (( i < 10 ))
do
    echo "Current number: $i"
    let i+=1
done

 

 

 

 

 

 

标签:脚本,10,shell,seq,echo,while,循环,local
From: https://blog.csdn.net/m0_73699202/article/details/144154848

相关文章

  • 国产化硬件系统上,部署视频监控平台系统软件出现的脚本问题解决
    目录一、问题描述二、解决方法        1、检查部署脚本权限        2、检查脚本中语法是否有问题        3、使用tee命令对文件进行修改        4、查看银河麒麟系统的安全设置        在国产系统银河麒麟硬件设备上部署视频......
  • 在使用 PowerShell 与 Excel COM 对象交互时,Get-Member 命令通常用于查看对象的成员(方
    在使用PowerShell与ExcelCOM对象交互时,Get-Member命令通常用于查看对象的成员(方法、属性等)。不过,Excel的COM对象可能会出现一些成员在使用Get-Member时无法完全显示的情况,尤其是在显示属性或方法时没有完全列出所有可用的成员。为了解决这个问题,可以使用以下几种方法来......
  • 泷羽sec-shell (3)脚本参数传递与数学运算
       声明!学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主......
  • dbeaver如何批量执行sql脚本
    场景:需要对数据库中的表做批量操作,需要加载多个sql文件,并批量执行1.创建链接文件或链接文件夹(把脚本加载到dbeaver对应的目录下)2.创建新任务(创建批量执行sql文件的任务)3.执行任务......
  • 无尽冬日辅助脚本2.0.x
    #无尽冬日脚本####介绍电脑版脚本,已实现13个功能的复选和单选执行,不定时新增####安装教程1. 下载已打包的脚本压缩包并解压(免费获取地址在下方)2. 电脑下载安装雷电模拟器(目前只支持雷电)3. 模拟器内安装登录游戏(首次需要)4. 运行jiaoben-x-x-x.exe,设置模拟器安......
  • 利用ffmpeg和bat脚本来将几个视频不编码仅合并为一个视频
    你可以利用ffmpeg.exe和.bat脚本来将几个(比如三个)视频不编码仅合并为一个视频。以下是一个详细的步骤指南:一、准备工作下载FFmpeg:前往FFmpeg的官方网站或可靠的下载源,下载并安装FFmpeg。确保FFmpeg的安装路径被添加到系统的环境变量中,或者你知道FFmpeg的完整安装路径。......
  • 运维脚本:网络连通性测试
    1. 背景介绍在日常运维工作中,网络连通性是确保系统稳定性和高可用性的关键因素之一。通过测试网络连通性,运维人员可以快速诊断网络问题,判断系统与其他设备或服务的连接状态。这对于预防和处理网络故障至关重要。本文将介绍如何编写和使用一个简单的运维脚本,来自动化测试服务器......
  • linux一键部署apache脚本
    分享一下自己制作的一键部署apache脚本:脚本已和当前文章绑定,请移步下载(免费!免费!免费!)(单纯的分享!)步骤:将文件/内容上传到终端中(这里使用的是SecureCRT的远程)当然。可以使用其他方式将脚本上传到linux中然后在弹出的目录中选择脚本上传进入后使用sh指令运行脚本(记得要ro......
  • shell脚本30个案例(五)
    前言:通过一个多月的shell学习,总共写出30个案例,分批次进行发布,这次总共发布了5个案例,希望能够对大家的学习和使用有所帮助,更多案例会在下期进行发布。案例二十一、系统内核优化1.问题:在服务器或高性能计算环境中,系统内核的默认参数可能无法满足特定工作负载的需求,导致性能不......
  • 使用PowerShell启用用户的MFA
    前言最近,在研究如何用代码启用AAD账户的MFA。正文命令如下,需要连接MgGraph,如果没有安装过Microsoft.Graph,需要先安装模块:Install-ModuleMicrosoft.Graph-ScopeCurrentUserConnect-MgGraph-ClientId"53bc74d4-1234-1234-1234-dd9b1c605883"-Tenant......