程序=数据+数据操作
变量是数据的载体,函数是数据操作的载体。
一、函数(方法)
是程序中最小的功能(封装)单元,在函数中一般封装具有特定功能的实现。
优点:易读易维护、实现功能复用。
声明函数
[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遍历读取变量数组
传参的方式:键盘输入、命令行后面输入、调用函数时传递。