shell介绍(七)--shell 流程控制

目录

1. 条件判断:if 语句

语法:

示例:

2. 循环:for 循环

语法:

示例:

3. 循环:while 循环

语法:

示例:

4. 循环:until 循环

语法:

示例:

5. 分支:case 语句

语法:

示例:

6. 选择:select 语句

语法:

示例:

7. 退出:break 和 continue

示例:

8. 条件判断:[[ 和 ]]

示例:

总结


 

在Unix/Linux Shell脚本中,流程控制指的是控制脚本执行顺序的方法。通过使用流程控制结构,可以实现条件分支、循环和其他逻辑控制,使得脚本可以根据不同的条件执行不同的操作。以下是一些基本的Shell流程控制结构的介绍和示例。

1. 条件判断:if 语句

if 语句是最基本的流程控制结构,用于根据条件执行不同的代码块。

语法:

 

bash

深色版本

1if condition; then
2    commands
3elif condition; then
4    commands
5else
6    commands
7fi

示例:

 

bash

深色版本

1#!/bin/bash
2num=10
3if [ "$num" -gt 0 ]; then
4    echo "Number is positive."
5elif [ "$num" -lt 0 ]; then
6    echo "Number is negative."
7else
8    echo "Number is zero."
9fi

2. 循环:for 循环

for 循环用于重复执行一组命令直到某个条件不再满足。

语法:

 

bash

深色版本

1for var in item list; do
2    commands
3done

示例:

 

bash

深色版本

1#!/bin/bash
2for i in 1 2 3 4 5; do
3    echo "Number: $i"
4done

3. 循环:while 循环

while 循环用于当某个条件为真时重复执行一组命令。

语法:

 

bash

深色版本

1while condition; do
2    commands
3done

示例:

 

bash

深色版本

1#!/bin/bash
2count=1
3while [ "$count" -le 5 ]; do
4    echo "Count: $count"
5    count=$((count + 1))
6done

4. 循环:until 循环

until 循环与while类似,但是只有当条件为假时才会执行循环体内的命令。

语法:

 

bash

深色版本

1until condition; do
2    commands
3done

示例:

 

bash

深色版本

1#!/bin/bash
2count=1
3until [ "$count" -gt 5 ]; do
4    echo "Count: $count"
5    count=$((count + 1))
6done

5. 分支:case 语句

case 语句提供了一个多分支的选择机制,可以根据变量的不同值执行不同的命令。

语法:

 

bash

深色版本

1case var in
2    pattern1)
3        commands
4        ;;
5    pattern2)
6        commands
7        ;;
8    *)
9        commands
10        ;;
11esac

示例:

 

bash

深色版本

1#!/bin/bash
2day="Sunday"
3case $day in
4    Monday)
5        echo "Today is Monday."
6        ;;
7    Tuesday)
8        echo "Today is Tuesday."
9        ;;
10    Wednesday)
11        echo "Today is Wednesday."
12        ;;
13    Thursday)
14        echo "Today is Thursday."
15        ;;
16    Friday)
17        echo "Today is Friday."
18        ;;
19    Saturday)
20        echo "Today is Saturday."
21        ;;
22    Sunday)
23        echo "Today is Sunday."
24        ;;
25    *)
26        echo "Invalid day."
27        ;;
28esac

6. 选择:select 语句

select 语句提供了一种交互式的菜单选择机制。

语法:

 

bash

深色版本

1select name in list; do
2    commands
3done

示例:

 

bash

深色版本

1#!/bin/bash
2select choice in "Option1" "Option2" "Option3"; do
3    case $choice in
4        "Option1")
5            echo "You selected Option1."
6            break
7            ;;
8        "Option2")
9            echo "You selected Option2."
10            break
11            ;;
12        "Option3")
13            echo "You selected Option3."
14            break
15            ;;
16        *) 
17            echo "Invalid option."
18            ;;
19    esac
20done

7. 退出:break 和 continue

  • break:立即退出最近的循环。
  • continue:跳过当前循环的剩余部分,并开始下一个迭代。

示例:

 

bash

深色版本

1#!/bin/bash
2for i in {1..10}; do
3    if [ "$i" -eq 5 ]; then
4        continue
5    fi
6    if [ "$i" -eq 8 ]; then
7        break
8    fi
9    echo "Number: $i"
10done

8. 条件判断:[[ 和 ]]

[[]] 提供了更加强大的条件测试能力,支持正则表达式匹配,并且可以进行更加复杂的字符串和数值比较。

示例:

 

bash

深色版本

1#!/bin/bash
2str="hello world"
3if [[ "$str" =~ hello ]]; then
4    echo "String contains 'hello'."
5else
6    echo "String does not contain 'hello'."
7fi

总结

通过上述的流程控制结构,你可以编写出复杂且功能丰富的Shell脚本。这些结构允许你在脚本中根据不同的条件执行不同的动作,从而提高脚本的灵活性和适应性。在实际编写脚本时,建议使用合适的缩进来保持代码的可读性,并确保所有的逻辑分支都得到了适当的处理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值