目录
②精确的给每一个下表索引定义一个值加入数组,索引数字可以不连续
③先把要加入数组的元素全部先赋值给一个变量,然后引用这个变量加入到数组
一、shell函数
1、函数的基本格式
[function] 函数名() {
命令序列
[return x] #使用return或exit可以显示的结束函数
}
或者
#也可以省略掉[function],它表示该函数的功能
函数名() { #函数名后面()是没有内容的
命令序列 #我们执行的命令内容放在{}里面
}
函数定义完之后并不会自动执行,需要调用才行,好处在于可以写一段功能代码作为函数,有需要就直接调用。定义的时候哪怕出现语法错误也没关系,不调用就不会报错,当然我们写函数最终目的还是为了调用,为了实现某个功能块。
2、函数的返回值return
表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值
使用原则:
函数一结束就取返回值,因为$?变量值返回执行的最后一条命令的退出状态码
退出状态码必须0~255,超出时值将为取余256(例如:返回码为300,那么将300%256)
3、函数的调用
直接在脚本里定义函数的代码块写函数名即可完成调用
①调用例子
②相同函数名的调用及两个函数里的变量调用
函数名必须是唯一的,如果先定义了一个,再用同样的名称定义第二个,那么第二个会覆盖第一个的功能,所以这里一定要注意不要重名
2个函数里同一个变量的值不一样,第二个变量值会覆盖第一个值
③函数调用顺序
调用函数之前,必须先进行定义!就是说函数的调用必须在函数的后面
4、函数的作用范围
在 Shell 脚本中函数的执行并不会开启一个新的子 shell,而是仅在当前定义的 shell 环境中有效。如果Shell脚本中的变量没有经过特殊设定,默认在整个脚本中都是有效的。在编写脚本时,有时需要将变量的值限定在函数内部,可以通过内置命令local来实现。函数内部变量的使用,可以避免函数内外同时出现同名变量对脚本结果的影响。
shell脚本中变量默认全局有效
local命令:将变量限定在函数内部使用
函数内与函数外定义相同变量
hanshu2函数内部使用了local命令设置变量a,其作用是将变量a限定在函数内部,hanshu2函数外部同样定义了变量a,内部变量a和全局变量互不影响。脚本执行先调用了函数hanshu2,函数内部变量a为7,所以输出7,调完函数,变量a赋值为10,所以有输出10
5、函数的参数
在shell中,调用函数时可以向其传递参数,在函数体内部,通过$n的形式来获取参数值,例如,$1表示第一个参数,$2表示第二个参数,就是使用位置参数来实现参数传递。