条件语句和循环结构在Shell脚本中用于控制程序的流程,让你可以根据条件决定执行不同的代码块,或者重复执行某些代码。下面是条件语句和循环结构的一些示例和说明:
**条件语句:**
1. **if语句**:
使用 `if` 语句根据条件执行不同的代码块。
if [ "$age" -gt 18 ]; then echo "成年" else echo "未成年" fi
2. **if-elif-else语句**:
使用 `elif` 可以添加多个条件分支。
if [ "$score" -ge 90 ]; then echo "优秀" elif [ "$score" -ge 80 ]; then echo "良好" else echo "一般" fi
3. **case语句**:
使用 `case` 语句根据不同值进行匹配。
case $day in "Mon") echo "星期一" ;; "Tue") echo "星期二" ;; *) echo "其他" ;; esac
**循环结构:**
1. **for循环**:
使用 `for` 循环遍历一系列值。
for i in {1..5}; do echo "Number: $i" done
2. **while循环**:
使用 `while` 循环在条件满足时重复执行代码块。
count=0 while [ "$count" -lt 5 ]; do echo "Count: $count" ((count++)) done
3. **until循环**:
使用 `until` 循环在条件不满足时重复执行代码块。
count=0 until [ "$count" -ge 5 ]; do echo "Count: $count" ((count++)) done
4. **break和continue**:
使用 `break` 可以退出循环,使用 `continue` 可以跳过当前循环。
for i in {1..10}; do if [ "$i" -eq 5 ]; then break fi echo "Number: $i" done
继续介绍条件语句和循环结构的内容:
**循环结构:**
5. **嵌套循环**:
可以在循环内部嵌套另一个循环。
for i in {1..3}; do for j in {1..3}; do echo "i: $i, j: $j" done done
6. **循环控制变量**:
使用 `break` 和 `continue` 来控制循环的执行。
for i in {1..5}; do if [ "$i" -eq 3 ]; then continue fi echo "Number: $i" done
7. **无限循环**:
使用 `while true` 或 `for (( ; ; ))` 来创建无限循环。
while true; do echo "无限循环" sleep 1 done
8. **循环读取文件内容**:
使用 `while read` 从文件逐行读取内容。
while IFS= read -r line; do echo "行内容: $line" done < input.txt
9. **循环数组和关联数组**:
遍历数组和关联数组的元素。
FRUITS=("Apple" "Banana" "Orange") for fruit in "${FRUITS[@]}"; do echo "$fruit" done declare -A COLORS COLORS["Red"]="#FF0000" COLORS["Green"]="#00FF00" for key in "${!COLORS[@]}"; do echo "$key: ${COLORS[$key]}" done
10. **计数循环**:
使用 `seq` 命令来创建计数循环。
for i in $(seq 1 5); do echo "Number: $i" done
11. **循环计数器**:
可以使用计数器来追踪循环的次数。
count=0 while [ "$count" -lt 5 ]; do echo "Count: $count" ((count++)) done
12. **until循环**:
使用 `until` 循环在条件不满足时重复执行代码块。
count=0 until [ "$count" -ge 5 ]; do echo "Count: $count" ((count++)) done
13. **break和continue**:
使用 `break` 可以退出循环,使用 `continue` 可以跳过当前循环。
for i in {1..10}; do if [ "$i" -eq 5 ]; then break fi echo "Number: $i" done
**条件语句:**
4. **测试文件和目录**:
使用 `-d` 判断是否为目录,`-f` 判断是否为普通文件,`-e` 判断文件是否存在等。
if [ -d "$dir" ]; then echo "是目录" elif [ -f "$file" ]; then echo "是文件" fi
5. **逻辑运算符**:
在条件判断中,可以使用逻辑运算符来组合多个条件。
- 逻辑与:`-a` 或 `&&`
- 逻辑或:`-o` 或 `||`
- 逻辑非:`!`
示例:
if [ "$age" -gt 18 -a "$gender" == "male" ]; then echo "成年男性" fi
6. **算术运算符**:
在数学运算中,可以使用算术运算符进行计算。
- 加法:`+`
- 减法:`-`
- 乘法:`*`
- 除法:`/`
- 取余:`%`
示例:
result=$((num1 + num2))标签:语句,count,shell,do,echo,循环,done,linux From: https://www.cnblogs.com/yund/p/17644042.html