shell脚本中的流程控制结构是编写复杂逻辑和处理不同情况的关键部分。它们允许你根据特定条件执行不同的代码块,或者重复执行代码块,又或者在特定条件下跳过部分代码块,增加脚本的灵活性和适应性。下面就将列举shell脚本中常见的流程控制函数。
1:下面是if的基本结构,在shell中的if与python不一样的在于最后要有一个fi结尾,同时中间的then表示if为真的情况。
if [ condition ]
then
# 在条件为真时执行的代码
else
# 在条件为假时执行的代码
fi
2:while在shell中也表示循环,和在python不一样的在与其必须有do作为开始,done作为结尾。下面是一个最简单的结构。
while [ condition ]
do
# 循环体中的命令或代码块
done
下面举出一个例子利用while算出1-10累加的代码
#!/bin/bash
sum=0
count=1
while [ $count -le 10 ]
do
sum=$((sum + count))
((count++))
done
echo "数字之和:$sum"
3:for循环,for循环的开始和结尾也需要加上一个do和done,for循环的基本结构如下:
for variable in list
do
# 循环体中的命令或代码块
done
下面是利用for循环举出一个小例子
#!/bin/bash
friuts=("apple" "banana" "orange" "grape")
for fruit in "${fruits[@]}"#表示遍历里面的每一个元素
do
echp "i like $fruit"
done
在for
循环中,可以使用不同的命令来控制循环的行为,例如:
break
:在循环体内部使用,用于提前结束循环。continue
:在循环体内部使用,用于跳过当前迭代的剩余代码,继续下一次迭代。
4:until的用法和while类似。下面是一个简单的示例,演示了如何使用until
循环来计算从0开始累加,直到累加和大于等于10为止:
#!/bin/bash
sum=0
count=0
until [ $sum -ge 10 ]
do
((sum += count0)
((count++))
done
echo "$sum"
echo "$count"
- 循环条件中的方括号
[]
是必需的,而且在条件表达式中使用变量时,要小心确保变量的值不会导致意外结果。