嵌入式培训-Linux系统及C编程高级-DAY7-Shell分支、循环

分支语句

语法结构:        

 if    表达式                

         then  命令表          

fi    

如果表达式为真, 则执行命令表中的命令; 否则退出if语句, 即执行fi后面的语句。

if和fi是条件语句的语句括号, 必须成对使用; 命令表中的命令可以是一条, 也可以是若干条。

if中的test语句可用中括号[ ]代替

if test -e $file

等价于

if [ -e $file ]   中括号内侧两端必须有空格

语法结构为:        

if      表达式        

          then

        命令表1      

          else  

        命令表2        

fi

如果表达式为真, 则执行命令表1中的命令, 再退出if语句; 否则执行命令表2中的语句, 再退出if语句. 注意: 无论表达式是否为真, 都有语句要执行.

then和else后面的命令表可以写好几条

if 表达式

        then

        命令表1

        elif

        表达式2

        then

        命令表2

        elif

        表达式3

        then

        命令表3

。。。。

        else

        命令表n

fi

相当于C语言里的else if。Shell里if和elif下面都必须有then

向上的尖括号 ^ ,是正则表达式以后面的内容开头的第一个元素

读别人的代码,如果有不认识的命令表达式,先找手册看命令的基本意思,对照说明预测表达式的含义和输出。然后把命令在终端上敲一敲,看看分析的结果是否一样。

test命令使用总结

     test命令测试的条件成立时, 命令返回值为真(0),否则返回值为假(非0).

嵌入式培训-Linux系统及C编程高级-DAY7-Shell分支、循环_第1张图片

多路分支语句

case…esac      

多路分支语句case用于多重条件测试, 语法结构清晰自然.  其语法为:      

case   字符串变量   in                                                            case语句只能检测字符串变量

          模式1)                        

                命令表1                                                            各模式中可用文件名元字符,以右括号结束

                 ;;            

         模式2 | 模式3)                                                          一次可以匹配多个模式用“|”分开

                命令表2      

                 ;;              

……                                                                         命令表以单独的双分号行结束,退出case语句

        模式n)                        

                命令表n                        

                 ;;                                                                模式 n常写为字符* 表示所有其它模式

esac                                                                             最后一个双分号行可以省略

default其余情况可以写 *)

-o 或

-a 与

!非

-gt 大于

-lt 小于

循环语句

for的用法

当循环次数已知或确定时,使用for循环语句来多次执行一条或一组命令。格式为:                   

 for   变量名   in   单词表              

do                      

        命令表              

done

变量依次取单词表中的各个单词,  每取一次单词, 就执行一次循环体中的命令.  循环次数由单词表中的单词数确定. 命令表中的命令可以是一条, 也可以是由分号或换行符分开的多条。 如果单词表是命令行上的所有位置参数时, 可以在for语句中省略 “in  单词表” 部分。

@和*,将终端输入的命令行参数传进来。*是当做整体,@是当成一个一个的

while的用法

语法结构为:                  

while    命令或表达式                        

        do                            

                命令表                        

        done  

while语句首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后再测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。  

while语句的退出状态为命令表中被执行的最后一条命令的退出状态。

循环控制语句

 break 和 continue       

        break  n  则跳出n层;       

        continue语句则马上转到最近一层循环语句的下一轮循环上,       

        continue  n则转到最近n层循环语句的下一轮循环上.

你可能感兴趣的:(数据库)