shell学习(二) 函数+流程控制

程序=数据+数据操作

变量是数据的载体,函数是数据操作的载体。

 

一、函数(方法)

是程序中最小的功能(封装)单元,在函数中一般封装具有特定功能的实现。

优点:易读易维护、实现功能复用。

声明函数

[function 可选] 函数名(){

  函数体

}

======下面举例:

hello(){

 echo "hello,this is a function."

}

调用函数:直接写函数名称即可。如 调用上面的 hello。

函数不调用不执行;必须先声明再调用(因为解释器是从上到下来执行的),这是弱类型计算机语言的特点。

 

1、带参数函数调用

          传参函数,调用的时候直接输入参数。

 

3、带返回值的函数调用

     返回值建议用0或非0表示,0表示正常执行。不建议直接return结果。

练习:求周长/面积

二、流程控制 if case for while

1、分支之 if 的三种写法

单分支

   举例:      不满足的情况没提示。  if [ xxx ] then .... fi

双分支

    举例:      if [ xxx ]then....else...fi

多分支

     举例:   

if [ xxx ]then....elif [ xxx ] then ... else...fi   (中间可多个elif 判断)

 

2、分支之case(多分支实现)

   举例:         区间判断

case能实现的if elif可以实现,反之不一定。

case $name in

1)

    code;;

2)

   code;;

*)

   code;;

esac

另外说明,case可以进行区间判断,但是区间范围局限于0-9,超出范围则识别为*那一类,即使写的是[9-100]之类的。

 

3、循环之for的用法

https://blog.csdn.net/wzj_110/article/details/86669426   for...in的用法

格式1:

for 变量名 in 列表(v1 v2 ...v3)             --从列表中取出元素赋给变量

do

   循环体

done

格式2: seq a n b    ---a、b为起始、终止值,n为步长,不设置的话默认为1.

for 变量名 in `seq 15`     --从1到15之间的所有整数序列,包括能取到1和15。  seq 5 15,指取到5-15的值。

do  xxx done

    

 

4、循环之while的用法

while [ xxx ]

do

   循环体

done

     

 

创建文件例子:

       

 

重定向

将命令结果作为内容输出到指定文件中。

1>>  命令正常执行,才将结果输出到文件中

2>>  命令执行失败,将错误提示输出到文件中

 

数组

和变量类似,也是数据的载体,数据可以存放多个值,变量一次性只能放一个值。

赋值数组:myvar =(v1 v2 v3 v4)   括号内多个值,进行赋值

查询元素:

myvar[0]  myvar[1]   查询值,用索引的方式,下标从0开始

myvar[*]  或 myvar[@]  获取所有元素值

"${#myvar[*]}"    获取元素个数,但是#要放在数组名之前。

修改数组元素:  myvar[0] = 100 ,直接重新给元素赋值即可。

删除数组: unset myvar   和变量删除一样操作

   循环for遍历读取变量数组

 

传参的方式:键盘输入、命令行后面输入、调用函数时传递。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值