控制流结构

摘要:

控制结构,if then else语句,case语句,for循环,until循环,while循环,break控制,continue控制

4.1流控制结构

流控制是什么?

#!/bin/bash
#创建一个目录
make /home/moocos/sh/txt
#复制所有txt文件到/home/moocos/sh/txt/
cp *.txt /home/moocos/sh/txt
rm -f *.txt
如果上述脚本创建目录失败或文件拷贝失败怎么处理?

这些都是流控制需要解决的


4.2if语句

语句格式:

if 条件1

then

命令1

elif 条件2

then

命令2

else

命令3

fi

注意:if语句必须以单词fi终止


if 条件

then 命令

fi

例子:

#!/bin/bash
#iftest
#this is a comment line
if [ "10" -lt "12" ]
then
    echo "yes,10 is less than 12"
fi

可以通过man test了解更多关于表达式的信息


if、then、else语句

例子:

#!/bin/bash
#if test2
echo -n "enter your name:"
read NAME
if [ "$NAME" = "" ];then
    echo "you did not enter any information"
fi

#!/bin/bash
#ifcp
if cp myfile.bak myfile;then
    echo "good copy"
else
    echo "`basename $0`:error could not copy the files">&2
fi

例子:

#!/bin/bash
#ifelif
echo -n "enter your name:"
read NAME
if [ -z $NAME ] || [ "$NAME" = "" ];then
    echo "you did not enter a name"
elif [ "$NAME" = "root" ];then
    echo "hello root"
elif [ "$NAME" = "cyf" ];then
    echo "hello cyf"
else
    echo "you are not root or cyf,but hi $NAME"
fi



4.2case语句

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

case语句格式:

case 值 in

模式1)

命令1

;;

模式1)

命令2

;;

esac
case取值后面必须为单词in,每一模式必须以右括号结束取值可以为变量或常数。匹配发现取值复核某一模式后,期间所有命令开始执行直至;;。模式匹配符*表示任意字符,?表示任意单字符,[..]表示类或范围中任意字符。

例子:

#!/bin/bash
#case select
echo -n "enter a number from 1to 3:"
read ANS
case $ANS in
1)
    echo "you select 1"
    ;;
2)
    echo "you select 2"
    ;;
3)
    echo "you select 3"
    ;;
*)
    echo "`basename $0`:this is not between 1 and 3">&2
    exit;
    ;;
esac

4.3for循环

for循环一般格式为:

for 变量名 in 列表

do

命令1

命令2

done

当变量在列表里,for循环及执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的shell命令和语句。变量名为任何单词。in列表用法是可选的,如果不用他,for循环使用命令行的位置参数。in列表可以包含替换、字符串和文件名。

例子:

  1 #!/bin/bash
  2 #for1
  3 for loop in 1 2 3 4 5
  4 do
  5     echo $loop
  6 done

  1 #!/bin/bash
  2 #for2
  3 for loop in orange red blue grey
  4 do
  5     echo $loop
  6 done

  1 #!/bin/bash
  2 #for2
  3 for loop in "orange red blue grey"
  4 do
  5     echo $loop
  6 done

  1 #!/bin/bash
  2 #for2
  3 for loop in `cat myfile`
  4 do
  5     echo $loop
  6 done



4.4until循环

until循环一般格式为:

until 条件

do 

命令1

命令2

。。。

done

注意:条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次。

例子:

  1 #!/bin/bash
  2 part="/dev/sda1"
  3 LOOK_OUT=`df |grep $part |awk '{print $5}' |sed 's/%//g'`
  4 echo $LOOK_OUT
  5 until [ "$LOOK_OUT" -gt "90" ]
  6 do
  7     echo "Filesystem /backup is nearly full" |mail root
  8 done



4.5while循环

while循环的一般 格式为:

while 命令

do 

命令1

命令2

。。。

done

注意:在while和do之间虽然通常只使用一个命令,但可以放几个命令,命令通常用作测试条件。

例子:

  1 #!/bin/bash
  2 echo "ctrl +d exit"
  3 while echo -n "please input the movie:";read FILM
  4 do
  5     echo "yeah.that is a good movie!"
  6 done

  1 #!/bin/bash
  2 while read LINE
  3 do
  4     echo $LINE
  5 done < names.txt                    





4.6break和continue控制

break [n]

-退出循环

-如果是在一个嵌入循环里,可以指定n来跳出的循环个数

continue

-跳出循环步

注意:continue命令类似于break命令,只是一点重要差别,他不会跳出循环,只是跳过这个循环步。


例子:

  1 #!/bin/bash
  2 #breakout
  3 while :
  4 do
  5     echo -n "enter any number[1-5]:"
  6     read ANS
  7     case $ANS in
  8     1|2|3|4|5)
  9         echo "you enter a number betweent 1 to 5"
 10         ;;
 11     *)
 12         echo "wrong number,byb"
 13         break
 14         ;;
 15     esac
 16 done

  1 #!/bin/bash
  2 #breakout
  3 while :
  4 do
  5     echo -n "Enter any number [1-5]:"
  6     read ANS
  7     case $ANS in
  8     1|2|3|4|5)
  9         echo "you enter a true number"
 10         ;;
 11     *)
 12         echo -n "wrong number,continue(y/n)?"
 13         read IS_C
 14         case  $IS_C in
 15             y|Y)
 16                 continue
 17                 ;;
 18             *)
 19                 break
 20                 ;;
 21         esac
 22     esac












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Matlab中,控制流结构主要有以下几种: 1. if-else语句:用于根据条件执行不同的操作。 2. for循环语句:用于多次执行相同的操作。 3. while循环语句:用于在满足条件时重复执行操作。 4. switch-case语句:用于根据不同的情况执行不同的操作。 下面是一个使用if-else语句的例子,根据输入的数字判断是奇数还是偶数: ``` num = input('请输入一个整数:'); if rem(num,2) == 0 disp('这是一个偶数。'); else disp('这是一个奇数。'); end ``` 函数的编写可以让我们将一段常用的代码封装起来,方便在其他地方调用。函数的基本格式如下: ``` function [output1,output2,...] = functionName(input1,input2,...) % 这里是函数的说明文档 % 函数的具体实现 end ``` 下面是一个简单的函数例子,用于计算两个数的和: ``` function sum = add(a,b) % 计算两个数的和 sum = a + b; end ``` 脚本文件通常用于存储一系列的命令和程序,以便多次使用。在脚本文件中,可以直接使用Matlab的语法和命令。下面是一个简单的脚本文件例子,用于计算1到10的和: ``` sum = 0; for i = 1:10 sum = sum + i; end disp(['1到10的和为:',num2str(sum)]); ``` 数据的导入导出可以使用Matlab中的内置函数,如`load`和`save`等。下面是一个简单的例子,用于从文本文件中读取数据并计算平均值: ``` data = load('data.txt'); avg = mean(data); disp(['数据的平均值为:',num2str(avg)]); ``` 总的来说,Matlab是一个非常强大的数学计算工具,可以用于各种类型的实验和数据处理。我们可以使用控制流结构、函数、脚本文件等进行编程,以实现各种需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiluohan0307

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值