shell脚本(七)

# 学习视频笔记均来自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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值