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命令参数