【学习笔记】Shell编程---流程控制语句

最近学了好多个流程控制语句,都有点混乱了,赶紧先把各种用法记录下来!

if 语句

语法格式

if 条件测试命令串

then

        条件为真时执行的命令

else

        条件为假时执行的命令

fi

以关键字if开头,后跟条件测试表达式,条件表达式可以只包含单一的条件测试也可以是多个条件测试组成的复合表达式,关键字then可以和 if 处于同一行,也可以换行书写。处于同一行时,必须在条件表达式后添加分号“;” 当条件表达式成立时,可以执行一条或多条命令,以关键字 fi 结束。

例:当输入Y或者y时,输出“Very good!!!”;当输入N或n时,输出“Oh,I'm sorry to hear that!!!”

程序实现如下:

执行文件,结果是正确的

除了简单的if-else-fi结构,还有if-elif-else-fi结构

语法格式

if 条件表达式1 ; then

        条件表达式1成立时执行的命令

elif 条件表达式 2; then

        条件表达式2成立时执行的命令

else

        以上所有条件都不成立时执行的命令

fi

例:当输入Y或者y时,输出“Very good!!!”;当输入N或n时,输出“Oh,I'm sorry to hear that!!!”;当输入其他非Y/y/N/n的输入时,输出“Wrong answer!!!”

case条件语句

语法格式:

case 值 in

表达式1)命令1;;

表达式2)命令2;;

...

*)命令X

esac

case多选择语句,可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。

例:输入一个num值,当输入的num是1时,输出A+B的值......

select循环

Shell中的select语句可以将选项列表做出类似目录的形式,以交互的形式选择列表中的数据,传入select语句中的主体部分加以执行,select语句实质上也是一个循环语句,若不添加break关键字,程序将无法跳出select结构。

语法格式:

select 变量 in 列表

do

        …

break

done

例:

如果不加【break】来跳出select循环的话将会出现以下情况

for循环

  • 主要用于执行次数确定的某种操作
  • 如果事先知道循环要执行多少次,使用for循环最合适
  • 把循环变量var设为value_list 中的一个值,然后代入循环体执行,直到value_list 中的每个值都使用一遍

通常有两种形式

第一种:

for var in var_list

do

        循环体

done

第二种:

for (( 初始化操作 ; 循环表达式 ; 赋值操作 ))

do

        循环体

done

这种形式循环变量的取值一般是一个整数 ,通过控制取值的上限或下限确定循环体的执行次数

例:

#!/bin/bash

还有一个非常典型的for循环的练习,题目,打印出99乘法表,打印的排版格式如下:

可以这样写:

#!/bin/bash
for i in {1..9}
do
    for ((j=1;j<=i;j++))
    do
    printf "%d*%d=%d" $j $i $((i*j))
    done
    echo
done

打印结果如下

while循环

while循环主要用于执行次数不确定的某种操作

while循环的工作机制是:反复执行某种有规律的操作,直到条件不成立

语法格式:

while [ 循环表达式 ]

do

        循环体

done

例:编写一个名为putnum的程序,在屏幕上输出从10到1的数字。

使用while循环计算1-100的累加值

until循环

和while循环的含义正好相反

执行顺序:当循环表达式为真时结束循环,否则一直执行循环体

语法格式:

until [ 循环表达式 ]

do

        循环体

done

例:编写一个程序,依次输出10、9、8、7、6。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值