您的位置:首页 > 游戏 > 游戏 > 保洁公司哪家好_推广软件排行榜前十名_网络营销方案案例_新人学会seo

保洁公司哪家好_推广软件排行榜前十名_网络营销方案案例_新人学会seo

2024/12/23 10:14:43 来源:https://blog.csdn.net/qq_40951951/article/details/144346146  浏览:    关键词:保洁公司哪家好_推广软件排行榜前十名_网络营销方案案例_新人学会seo
保洁公司哪家好_推广软件排行榜前十名_网络营销方案案例_新人学会seo

for循环

在 Shell 脚本中,for 循环是一种常见的循环结构,用于遍历列表、数组或命令输出。

基本语法

for 循环的基本语法如下:

#!/bin/bash
for variable in list
docommands
done
  • variable 是一个临时变量,用于存储每次迭代中的当前项。
  • list 可以是空格分隔的值、文件名、命令输出等。
  • commands 是循环体中要执行的命令。

简单示例

遍历列表

#!/bin/bash
for color in red green blue
doecho "Color: $color"
done

运行输出:

Color: red
Color: green
Color: blue

遍历数字范围

可以使用 Brace Expansion 或 seq 命令来生成数字范围。

使用 Brace Expansion
#!/bin/bash
for i in {1..5}
doecho "Number: $i"
done
使用 seq 命令
#!/bin/bash
for i in $(seq 1 5)
doecho "Number: $i"
done

遍历数组

定义和遍历数组
#!/bin/bash
fruits=("apple" "banana" "cherry")for fruit in "${fruits[@]}"
doecho "Fruit: $fruit"
done

使用命令输出进行循环

可以将命令输出作为列表来进行循环。

遍历文件名
#!/bin/bash
for file in $(ls)
doecho "File: $file"
done
遍历命令输出
#!/bin/bash
for user in $(cut -d: -f1 /etc/passwd)
doecho "User: $user"
done

嵌套 for 循环

可以在 for 循环中嵌套另一个 for 循环。

#!/bin/bash
for i in {1..3}
dofor j in {a..c}doecho "Combination: $i$j"done
done

运行输出:

Combination: 1a
Combination: 1b
Combination: 1c
Combination: 2a
Combination: 2b
Combination: 2c
Combination: 3a
Combination: 3b
Combination: 3c

示例脚本

计算文件总大小

计算当前目录中所有文件的总大小。

#!/bin/bash
total_size=0for file in $(ls)
doif [ -f $file ]; thensize=$(stat -c%s "$file")total_size=$((total_size + size))fi
doneecho "Total size: $total_size bytes"

生成乘法表

生成一个简单的乘法表。

#!/bin/bash
for i in {1..9}
dofor j in {1..9}doresult=$((i * j))echo -n "$i*$j=$result "doneecho ""
done

while 循环

while 循环是 Shell 脚本中常用的循环结构之一。它用于在条件为真时反复执行一组命令。

基本语法

while 循环的基本语法如下:

#!/bin/bash
while [ condition ]
docommands
done
  • condition 是一个测试条件,当条件为真(返回状态为 0)时,循环继续执行。
  • commands 是循环体中的命令。

简单示例

打印数字

使用 while 循环打印 1 到 5 的数字:

#!/bin/bash
count=1
while [ $count -le 5 ]
doecho "Number: $count"count=$((count + 1))
done

运行输出:

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

无限循环

可以创建一个无限循环,直到满足某个条件时使用 break 退出:

#!/bin/bash
while true
doecho "This is an infinite loop. Press Ctrl+C to stop."sleep 1
done

读取用户输入

使用 while 循环读取用户输入,直到输入 exit 时退出循环:

#!/bin/bash
input=""
while [ "$input" != "exit" ]
doecho "Enter something (type 'exit' to quit):"read inputecho "You entered: $input"
done

从文件读取行

使用 while 循环逐行读取文件内容:

#!/bin/bash
filename="test.txt"
while IFS= read -r line
doecho "Line: $line"
done < "$filename"

嵌套 while 循环

可以在 while 循环中嵌套另一个 while 循环:

#!/bin/bash
outer=1
while [ $outer -le 3 ]
doinner=1while [ $inner -le 3 ]doecho "Outer: $outer, Inner: $inner"inner=$((inner + 1))doneouter=$((outer + 1))
done

运行输出:

Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 1, Inner: 3
Outer: 2, Inner: 1
Outer: 2, Inner: 2
Outer: 2, Inner: 3
Outer: 3, Inner: 1
Outer: 3, Inner: 2
Outer: 3, Inner: 3

实际示例

下载文件直到成功

尝试下载文件,直到成功为止:

#!/bin/bash
url="http://example.com/file.zip"
output="file.zip"while ! curl -O $url
doecho "Download failed, retrying in 5 seconds..."sleep 5
doneecho "Download completed."

until循环

Shell 脚本 中,until 循环是一种条件循环结构,它用于在条件未满足(条件为 false)时重复执行代码块。一旦条件满足(即变为 true),循环将终止。

until 循环是 while 循环的反向逻辑:

  • while 循环:当条件为 true 时执行循环体。
  • until 循环:当条件为 false 时执行循环体。

语法格式

until [ 条件 ]
do# 循环体:当条件为false时执行命令
done
  • until 后面的条件被测试:
    • 如果条件为 false,执行 do 块中的代码。
    • 每次循环结束后,重新测试条件,直到条件为 true 时终止循环。

基本示例

示例:简单的计数器

#!/bin/bash
# 使用 until 循环打印1到5的数字count=1until [ $count -gt 5 ]; doecho "Count: $count"((count++))  # 增加计数器
doneecho "Loop finished."

输出结果

Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
Loop finished.

解析

  1. 初始值 count=1
  2. 条件 [ $count -gt 5 ] 表示 “count 大于 5”。
  3. count <= 5 的情况下,条件为 false,因此执行循环体。
  4. 每次循环后,count 递增 1。
  5. count > 5 时,条件为 true,循环结束。

使用 until 循环读取用户输入

#!/bin/bash
# 直到用户输入 "yes" 才终止循环input=""until [ "$input" == "yes" ]; doread -p "请输入 'yes' 来退出循环: " input
doneecho "你输入了 'yes',循环结束。"

输出

请输入 'yes' 来退出循环: no
请输入 'yes' 来退出循环: maybe
请输入 'yes' 来退出循环: yes
你输入了 'yes',循环结束。

解析

  • read 命令用于从用户输入中读取数据。
  • until 循环判断用户输入是否等于 "yes",直到条件满足为止。

until 循环与 break 结合使用

你可以使用 break 命令在 until 循环中提前终止循环。

#!/bin/bash
count=1until [ $count -gt 10 ]; doecho "Count: $count"if [ $count -eq 5 ]; thenecho "提前终止循环"breakfi((count++))
doneecho "循环结束"

输出

Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
提前终止循环
循环结束

解析

  • count 等于 5 时,break 命令强制终止循环。

until 循环与 continue 结合使用

continue 命令用于跳过当前迭代,继续下一次循环。

#!/bin/bash
count=0until [ $count -ge 5 ]; do((count++))if [ $((count % 2)) -eq 0 ]; thencontinue  # 跳过偶数fiecho "Odd Count: $count"
done

输出

Odd Count: 1
Odd Count: 3
Odd Count: 5

解析

  • continue 跳过偶数的输出,只显示奇数值。

whileuntil 的对比

特性while 循环until 循环
执行条件条件为 true 时执行条件为 false 时执行
执行逻辑反复执行直到条件变为 false反复执行直到条件变为 true
使用场景已知条件满足时,继续执行任务直到特定条件满足时才停止任务
示例条件[ $count -le 5 ] (小于等于5时)[ $count -gt 5 ] (大于5时停止)

示例对比

  • while 循环
count=1
while [ $count -le 5 ]; doecho $count((count++))
done
  • until 循环
count=1
until [ $count -gt 5 ]; doecho $count((count++))
done

两者的输出是相同的,但逻辑的书写顺序相反。


breakcontinue

在Shell脚本中,breakcontinue 是用于控制循环流的关键字。它们可以用于 forwhileuntil 循环中,以改变程序的执行顺序。


break 命令

break 命令用于终止当前所在的循环结构。它会立即跳出当前的循环,无论循环条件是否还满足。

语法

break [n]
  • n 是可选的,表示跳出第 n 层的循环。
    • n = 1(默认值):跳出当前循环。
    • n > 1:跳出外层的多重循环。

使用示例:

示例1:跳出单层循环
#!/bin/bash
for i in {1..5}; doecho "Number: $i"if [ $i -eq 3 ]; thenecho "Breaking out of loop."breakfi
done
echo "Loop terminated."

输出

Number: 1
Number: 2
Number: 3
Breaking out of loop.
Loop terminated.

解释:当 i 等于3时,break 会终止整个循环。

示例2:跳出多层循环
#!/bin/bash
for i in {1..3}; dofor j in {1..3}; doecho "i=$i, j=$j"if [ $j -eq 2 ]; thenbreak 2  # 跳出两层循环fidone
done
echo "Exited both loops."

输出

i=1, j=1
i=1, j=2
Exited both loops.

解释:break 2 跳出所有嵌套的循环结构。


continue 命令

continue 命令用于跳过当前循环中的剩余部分,直接进入下一次循环的开始处。它不会终止整个循环,而是继续执行下一个迭代。

语法

continue [n]
  • n 是可选的,表示跳过当前第 n 层循环的剩余部分。
    • n = 1(默认值):跳过当前循环的当前迭代。
    • n > 1:跳过外层的多重循环。

使用示例:

示例1:跳过单层循环的迭代
#!/bin/bash
for i in {1..5}; doif [ $i -eq 3 ]; thenecho "Skipping number: $i"continuefiecho "Number: $i"
done

输出

Number: 1
Number: 2
Skipping number: 3
Number: 4
Number: 5

解释:当 i 等于3时,continue 跳过当前迭代,输出 Number: 3 被跳过。

示例2:跳过嵌套循环中的某层迭代
#!/bin/bash
for i in {1..3}; dofor j in {1..3}; doif [ $j -eq 2 ]; thenecho "Skipping inner loop when j=$j"continue 2  # 跳过外层循环的当前迭代fiecho "i=$i, j=$j"done
done

输出

i=1, j=1
Skipping inner loop when j=2
i=2, j=1
Skipping inner loop when j=2
i=3, j=1
Skipping inner loop when j=2

解释:continue 2 使外层循环跳过当前迭代,而不仅仅是内层循环。


breakcontinue 的区别

功能breakcontinue
作用终止整个循环跳过当前迭代,继续下一次循环
范围可以指定跳出多层循环可以指定跳过多层循环的迭代
用途完全停止循环控制循环内某些条件下的跳过行为

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com