Shell中的控制结构

前言

与其他编程语言一样,shell也有顺序、分支、循环三种控制结构。

一、顺序结构

即程序自入口到出口依次执行,实例如下:

  A=10
  B=20
  echo $[$A+$B]

二、分支结构

分支如同原本笔直的大道突然在前面分成了两条以上的小路,此时,需要根据所给条件的判定结果,决定最终走哪一条路。

2.1 双分支

if...else结构,实例如下:

T=20
if [ $T > 20 ]
  then
    echo "$T大于20"
else
    echo "$T小于20"
fi

2.1 多分支

case语句,实例如下:

 ACTION=stop
 case $ACTION in
 stop)
    echo "stop xxx service"
 ;;
 start)
    echo "start xxx service"
 ;;
 restart)
    echo "restart xxx service"
 ;;
 *)     #默认匹配
    echo "execute other actions"
 ;;    
 esac   #case的反写

三、循环结构

重复做具有同样流程的事。

3.1 for循环

九九乘法表,实例如下:

for((i=1;i<10;i++))
do
  for((j=1;j<=i;j++))
  do
     echo -ne "$j * $i = $[$i*$j]\t"
  done
  echo -e "\n"
done
  
结果:
1 * 1 = 1

1 * 2 = 2       2 * 2 = 4

1 * 3 = 3       2 * 3 = 6       3 * 3 = 9

1 * 4 = 4       2 * 4 = 8       3 * 4 = 12      4 * 4 = 16

1 * 5 = 5       2 * 5 = 10      3 * 5 = 15      4 * 5 = 20      5 * 5 = 25

1 * 6 = 6       2 * 6 = 12      3 * 6 = 18      4 * 6 = 24      5 * 6 = 30      6 * 6 = 36

1 * 7 = 7       2 * 7 = 14      3 * 7 = 21      4 * 7 = 28      5 * 7 = 35      6 * 7 = 42      7 * 7 = 49

1 * 8 = 8       2 * 8 = 16      3 * 8 = 24      4 * 8 = 32      5 * 8 = 40      6 * 8 = 48      7 * 8 = 56      8 * 8 = 64

1 * 9 = 9       2 * 9 = 18      3 * 9 = 27      4 * 9 = 36      5 * 9 = 45      6 * 9 = 54      7 * 9 = 63      8 * 9 = 72      9 * 9 = 81
3.2 while循环

求n!,实例如下:

i=1
res=1
while [ $i -le $1 ]    # $1为传入脚本的第一个参数
do
  res=$[$i*$res]
  i=$[$i+1]
done
echo "$1的阶乘为:$res"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 shell ,有三种主要的选择结构:if语句、case语句和select语句。 1. if语句 if语句是最常用的选择结构之一。它的语法如下: ``` if condition then # do something fi ``` 其,`condition` 是一个条件表达式,如果它的值为 true,则执行 `do something` 的代码块。注意,if语句的 `then` 和 `fi` 是必须的。 你也可以使用 `elif` 和 `else` 分支来实现更复杂的逻辑: ``` if condition1 then # do something elif condition2 then # do something else else # do something else fi ``` 2. case语句 case语句可以根据变量的值来执行不同的代码块。它的语法如下: ``` case variable in pattern1) # do something ;; pattern2) # do something else ;; *) # default case ;; esac ``` 其,`variable` 是一个变量名,`pattern1` 和 `pattern2` 是匹配模式,`;;` 表示一个代码块的结束。如果 `variable` 的值与某个模式匹配,则执行相应的代码块,否则执行默认代码块。 3. select语句 select语句可以让用户从一个列表选择一个选项,并执行相应的代码块。它的语法如下: ``` select variable in option1 option2 option3 do case $variable in option1) # do something ;; option2) # do something else ;; option3) # do something else ;; *) # default case ;; esac done ``` 其,`variable` 是一个变量名,`option1`、`option2` 和 `option3` 是可供选择的选项。用户可以使用数字来选择一个选项,然后执行相应的代码块。注意,select语句必须以 `done` 结束。 ### 回答2: Shell脚本的选择结构主要包括if条件语句和case语句。 if条件语句用于根据条件的真假来执行相应的代码块。语法如下: ``` if 条件 then 代码块1 elif 条件2 then 代码块2 else 代码块3 fi ``` 其,如果条件为真,则执行代码块1;如果条件为假且条件2为真,则执行代码块2;如果以上条件都不满足,则执行代码块3。 case语句用于根据变量的值来选择执行不同的代码块。语法如下: ``` case 变量 in 值1) 代码块1 ;; 值2) 代码块2 ;; *) 代码块3 ;; esac ``` 其,根据变量的值与每个值对应的值进行匹配,如果匹配成功,则执行相应的代码块;如果没有匹配成功,则执行代码块3。 选择结构在Shell脚本非常重要,可以根据不同的条件或变量值来选择执行不同的代码,从而实现灵活的控制流程。 ### 回答3: Shell选择结构是Shell脚本用于根据条件判断选择不同路径执行的一种结构。在Shell脚本,我们可以使用if-then、if-then-else和case语句来构建选择结构。 if-then语句是最基本的选择结构,它可以根据一个条件来判断执行某个代码块。例如,我们可以使用if-then语句来判断一个数是否大于10,如果大于则输出"大于10",否则输出"小于等于10"。 if-then-else语句在条件判断的基础上增加了一个可选的else分支,用于处理条件为假时的情况。例如,我们可以使用if-then-else语句来判断一个数是否为奇数,如果是则输出"奇数",否则输出"偶数"。 case语句是一种更加灵活的选择结构,它可以根据多个条件判断执行不同的代码块。case语句由一个待判断的表达式和多个模式匹配语句组成,当表达式的值与某个模式匹配时,执行相应的代码块。例如,我们可以使用case语句来判断一个字符是大写字母、小写字母还是数字,并分别输出相应的信息。 选择结构在Shell脚本非常重要,它可以根据不同的条件执行不同的逻辑,增加了脚本的灵活性和可读性。我们可以根据具体需求选择合适的选择结构来实现相应的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值