Shell编程之循环语句与函数

发布于:2024-05-13 ⋅ 阅读:(147) ⋅ 点赞:(0)

1. 循环语句

 1.1 for循环语句

for语句的结构 

for 变量名 in 取值列表
do
	命令序列
done

 for循环默认情况下可以把空格 换行 tab键认为取值列表

 for语句执行流程

  • 首先将列表中的第1个取值赋给变量,并执行 do···done循环体中的命令序列

  • 然后将列表中的第2个取值赋给变量,并执行循环体中的命令序列……

  • 以此类推,直到列表中的所有取值用完,最后将跳至 done 语句,表示结束循环

 1.2 for语句应用实例

 求从1到100所有整数的偶数和、奇数和


#!/bin/bash
#求从1到100所有整数的偶数和、奇数和
a=0
b=0
# 使用for循环遍历1到100的整数
for ((i=1; i<=100; i++)); do
    if [ $((i % 2)) -eq 0 ]; then
        # 如果是偶数,则累加到偶数和
        a=$((a + i))
    else
        # 如果是奇数,则累加到奇数和
        b=$((b + i))
    fi
done

# 输出结果
echo "偶数和为: $a"
echo "奇数和为: $b"




done

 

 2. while循环语句

for循环语句非常适合于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合使用while语句。

2.1 while 语句的结构

使用 while 循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。但是在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。

循环体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束循环。

while循环语句的语法结构如下所示:

while 条件测试操作
do
	命令序列
done

 2.2 while 语句的结构

首先判断 while 后的条件测试操作结果,如果条件成立,则执行 do···done 循环体中的命令序列
返回 while 后再次判断条件测试结果,如果条件仍然成立,则继续执行循环体

再次返回到 while 后,判断条件测试结果…如此循环

直到 while 后的条件测试结果不再成立为止,最后跳转到 done 语句,表示结束循环

 2.2 while语句应用实例

使用while循环求从1到100所有整数的偶数和,奇数和

#!/bin/bash
#求从1到100所有整数的偶数和,奇数和

 a=1

 jisum=0
 ousum=0

 while [ $a -le 100 ]
 do
    b=$[a % 2]
    if [ $b -eq 0 ];then
    let ousum+=$a
 else
    let jisum+=$a
 fi
 let a++
done

 3. shell脚本操练

3.1 使用循环语句将一个0到255 之间的十进制数转换成8位数二进制数

#!/bin/bash
#使用循环语句将一个0到255 之间的十进制数转换成8位数二进制数
#减法正排
 read -p "请输入一个0-255的整数;" num
#for i in 128 64 32 16 8 4 2 1
a=256
for ((i=1; i<=8; i++))
do
   a=$[a / 2]
   result=$[num - a]
   if [ $result -lt 0 ];then
      echo -n 0
   else
      echo -n 1
      let num=$a
   fi
done
echo ''

 3.2 计算从1到100所有整数的和

#!/bin/bash
#计算从1到100所有整数的和
a=1
sum=0
    until [ $a -gt 100 ]
  do
  let sum+=$a
  let a++
 done
echo $sum

4. echo命令参数