Shell脚本编程概述(三):函数和数组

一、函数:function

1.function概念

function是一种过程式编程,目的在于代码重用,是一种模块化编程、结构化编程编程方式

函数:把一段独立功能的代码当作一个整体,并为之一个名字;命名的代码段

注意:

1) 定义函数的代码段不会自动执行,在调用时执行;所谓调用函数,在代码中给定函数名即可;

2) 函数名出现的任何位置,在代码执行时,都会被自动替换为函数代码;

2.语法

语法一:

function  FUNCTION_NAME  {

...函数体...

}

语法二:

FUNCTION_NAME()  {

...函数体...

}

3.函数的生命周期:每次被调用时创建,返回时终止;

其状态返回结果为函数体中运行的最后一条命令的状态结果;

自定义状态返回值,需要使用:return

return[0-255]

0:成功

1-255:失败

4.函数返回值:

(1)函数的执行结果返回值:

1)使用echo或printf命令进行输出;

2)函数体中调用的命令的执行结果;

(2)函数的退出状态码:

1)默认取决于函数体中执行的最后一条命令的退出状态码;

2)自定义:return

5.传递参数给函数:

$1,$2, ...:引用传递给函数的参数;

$*或[email protected]:引用所有参数

$#:引用传递的参数的个数;

在调用函数时,在函数名后面以空白符分隔给定参数列表即可,例如,testfunc  arg1 arg2 arg3 …

6.函数变量作用域

局部变量:作用域是函数的生命周期;在函数结束时被自动销毁;

定义局部变量的方法:localVARIABLE=VALUE

本地变量:作用域是运行脚本的shell进程的生命周期;因此,其作用范围为当前shell脚本程序文件;

7.函数递归:

函数直接或间接调用自身;

二、数组:ARRAY

1.数组:

变量是存储单个元素的内存空间;数组是存储多个元素的连续的内存空间;

格式:数组名[索引]

数组名:整个数组只有一个名字;

数组索引:编号从0开始;

引用方法:${ARRAY_NAME[INDEX]}

注意:

1)引用数组时只给数组名,表示引用下标为0的元素;

2)关联数组:bash-4及之后的版本,支持自定义索引格式,而不仅仅是0,1,2,...数字格式

2.声明数组:

declare  -a NAME:声明索引数组;

declare  -A NAME:声明关联数组;

3.数组中元素的赋值方式

(1) 一次只赋值一个元素:ARRAY_NAME[INDEX]=value

(2) 一次赋值全部元素:ARRAY_NAME=("VAL1" "VAL2" "VAL3"  ...)

(3) 只赋值特定元素:ARRAY_NAME=([0]="VAL1" [3]="VAL4" ...)

注意:bash支持稀疏格式的数组;

(4)交互式读取赋值: read -a  ARRAY_NAME

4.数组的长度(数组中元素的个数):

${#ARRAY_NAME[*]}

${#ARRAY_NAME[@]}

5.引用数组中的所有元素:

${ARRAY_NAME[*]}

${ARRAY_NAME[@]}

6.数组元素切片: ${ARRAY_NAME[@]:offset:number}

offset:要路过的元素个数;

number:要取出的元素个数;省略number时,表示取偏移量之后的所有元素;

7.向非稀疏格式数组中追加元素:

ARRAY_NAME[${#ARRAY_NAME[*]}]=

8.删除数组中的某元素:

unset  ARRAY[INDEX]

9.关联数组:

declare  -A ARRAY_NAME

ARRAY_NAME=([index_name1]="value1"  [index_name2]="value2" ...)

时间: 2024-10-05 23:58:28

Shell脚本编程概述(三):函数和数组的相关文章

Shell脚本编程概述(一):算数运算和条件测试

一.shell脚本语言 1.编程语言的分类: (1)根据运行方式 编译运行:源代码 --> 编译器 (编译)--> 程序文件: 解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行: (2)根据其编程过程中功能的实现是调用库还是调用外部的程序文件: shell脚本编程:利用系统上的命令及编程组件进行编程: 完整编程:利用库或编程组件进行编程: (3)编程模型: 过程式编程语言:以指令为中心来组织代码,数据是服务于代码: 顺序执行.选择执行.循环执行:代表:C,bash 面向对

Shell脚本编程概述(四):bash内置字符处理工具

一.字符串切片: ${var:offset:number}  取字符串的子串: 取字符趾的最右侧的几个字符:${var:  -length} 注意:冒号后必须有一个空白字符: 二.基于模式取子串: 1.${var#*word} word是指定的分隔符: 自左而右查找var变量所存储的字符串中,第一次出现的word分隔符,删除字符串开头至此分隔符间所有字符 2.${var##*word} 自左而右查找var变量所存储的字符串中,最后一次出现的word分隔符,删除字符串开头至此分隔符间所有字符 3.

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

Linux中的shell脚本编程——数组 ,高级字符串操作 ,高级变量 ,配置用户环境

概述: 概述: 本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境. 一.函数和位置参数扩展 1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉     2.匿名函数的使用 第一篇:数组 一.数组的定义: 1.变量:存储单个元素的内存空间 2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 3.数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开

Linux中的shell脚本编程——函数

概述: 本章节将总结while,for循环语句的特殊用法,在不同的场景当中,更能发挥其功能和价值.除此之外,还会介绍一种特殊的循环语句select语句,实现菜单的作用.最重要的是讲解shell脚本编程中函数的用法.这些内容都要熟练掌握. 一.循环语句的特殊用法: 1.while循环的特殊用法(遍历文件的每一行): □语法:while read line; do 循环体 done < /PATH/FROM/SOMEFILE □意义:依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将

《Linux命令行与shell脚本编程大全》第十七章 创建函数

可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了. 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用. 17.1.1 创建函数 有两种格式:name 是函数名 1) function name {          commands } 2)这种就比较接近c语言风格了 name() {          commands } 17.1.2 使用函数 跟其他shell命令一样,在行中指定函数名就好了. 在函数定义前使用函数,会收

第三周、文本处理工具、shell脚本编程

文本处理工具 1.cut -d指定分隔符.比如-d: -d' ' -f指定取第几列.比如-f1,3 --output-delimiter指定显示的分隔符 tr -s压缩 -d删除 -c除了 2.使用tr和cut取磁盘的百分比 [[email protected] data]# df -h | tr -s ' ' | cut -d' ' -f5 | tr -dc '[0-9]\n' 0 0 5 0 32 67 32 0 3.取IP [[email protected] data]# ifconfi

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件