bash脚本编程之十 函数

bash脚本编程之十 函数详解

·函数(function)

function翻译成函数对于中文来讲不是特别的精确,因为function的真正意思是功能,理论上function这个英文单词既可以翻译成函数,又可以翻译成功能,但是我们数学意义上的函数和程序中的函数并不是同一个概念,所以我们如果把function称为功能可能会更合适一点,但是我们大家约定俗成通常都称其为函数,函数是实现结构化编程的一个重要思想,其主要目的是为了实现代码重用

·库(library)

库是由一些共享对象(so->shared object)组成的,库存在的主要目的是为了被多个进程同时调用

·在bash脚本当中如何定义一个函数

在bash脚本当中使用函数说白了其实就是把本来应该独立执行的一段代码给它封装成一个独立的功能,并且给它起个名字,这个过程就叫做定义函数

定义函数的方法:

1,使用function关键字

格式:

function FUNCNAME {

command

}->花括号里面的内容称为函数体

2,直接定义函数名的方法

格式:

FUNCNAME() {

command

}

由以上两图可知函数的调用直接写上函数名即可,不用在函数名后面再加上小括号了,并且封装好的函数可以重复调用多次,函数不经过调用是不会执行函数体内的代码的,函数也有执行状态结果返回值:

我们可以根据需要来定义一个函数的执行状态结果返回值,定义方法->

使用return关键字

格式:

return #(0-255)

类似于脚本的执行状态返回值,0代表正确返回,1-255代表各种情况的错误返回,脚本的执行状态结果返回值取决于脚本中执行的最后一条命令,一旦函数在执行的过程中遇到了return关键字,那么函数会立即终止执行,这样一来我们就可以在主调函数中通过函数的返回值来判断函数是否正确执行了

·接收参数的函数

我们在给函数传递参数的时候是在函数名后面直接跟上要传递的参数,参数之间使用空格隔开,而且函数的形参和脚本的位置参数类似都是用$1,$2,...表示的

格式:

FUNCNAME arg1 arg2 ...

练习:

写一个脚本,要求

判断规定网段之中哪些主机在线,要求:

1,使用函数来实现一台主机的判断过程

2,在主程序中调用此函数来判断指定网段范围内所有主机的在线情况

脚本内容:

脚本执行结果:

练习:写一个脚本,要求

使用函数完成

1,函数能够接收一个参数,参数为用户名

判断该用户是否存在,如果存在就返回此用户的UID和shell,并且返回正常的返回值,如果不存在,就显示此用户不存在,并且返回错误的返回值

2,在主程序中调用此函数,并且让用户自己输入用户名传递给函数来进行判断,第一次判断完成后不退出脚本,而是提示用户继续输入下一个用户名,如果用户输入的用户名不存在,那么就请用户重新输入,但是如果用户输入q或Q就退出脚本

脚本内容:

脚本执行结果:

时间: 2024-12-06 23:52:41

bash脚本编程之十 函数的相关文章

Linux系统裁剪之二(Bash脚本编程之十二)

Linux系统裁剪之二(Bash脚本编程之十二) 系统函数库 ·Linux系统的启动流程     1,POST(加电自检) 计算机本身并不会执行程序,它只是一堆破铜烂铁,但是它可以在开机的时候先去载入一段程序,系统在刚刚启动的时候能够实现将某个ROM芯片中的程序映射到CPU能够寻址的地址空间中去,并且让CPU能够执行其中的指令,这些指令大部分都是用来做系统检测的,当检测完成后,如果系统中所有的基本硬件和核心硬件都没有问题的话,接下来就会根据BIOS中设定的系统启动次序(Boot Sequence

bash脚本编程进阶篇

bash脚本编程进阶篇   函数.数组.字符串操作 一.函数:脚本编程中的函数与我们数学中的函数有着根本区别.这里的函数主要是为了实现过程式编程代码重用的作用.比如一个用于计算数字的函数,当我们需要使用计算数字的时候,直接调用这个函数过来而不必每一次计算数字都要自己重新写一次.因此,函数的主要功能可以概括为:便于实现模块化编程:便于代码的重用:使程序简洁.我们定义函数,可以分两种两种结构. 第一种函数结构,用function声明一个函数,后跟函数名.函数体用花括号括起来.第二种结构是用函数名跟小

《高级Bash脚本编程指南》十年来首次修订

新年伊始,开源慕课的知识库上线了.初期提供了<Linux命令大全/Bash 参考><高级Bash脚本编程指南>两个系列.其他资料正将陆续上线. 其中,<高级Bash脚本编程指南>对于Shell学习者来说,是一本神一样的书籍. 它的原作者是Mendel Cooper,英文名叫<Advanced Bash-Scripting Guide>发表在http://tldp.org/ 上,是一本免费的书籍. 有人说,学习Unix/Linux,有座山叫shell编程,你总

高级Bash脚本编程指南

http://tldp.org/LDP/abs/html/ 高级Bash脚本编程指南对脚本语言艺术的深入探索 本教程不承担以前的脚本或编程知识,但进展迅速走向一个中级/高级水平的指令...一直偷偷在细小的UNIX®智慧和学识.它作为一本教科书,一本手册,自学,并作为一个参考和知识的来源,壳牌的脚本技术.练习和大量的评论实例请读者参与,在这样的前提下,真正学习脚本的唯一途径是编写脚本.这本书是适合课堂使用的一般介绍编程的概念.本文件被授予公共领域.没有版权! 奉献对于安妮塔,所有魔术的来源内容表第

bash脚本编程基础

bash编程   bash脚本编程是过程式解释编程,其实就是linux命令的堆砌,既然是编程就应该有相应编程语法.    与任何过程式编程一样,过程式编程的特点就是:顺序执行,选择执行,循环执行.    过程式编程:以指令为中心,设计算法,数据服务于算法,过程式编程的灵魂:算法.    1.变量:数值变量,字符变量           bash环境:                本地变量:当前shell进程:                环境变量:当前shell进程及其子进程:       

bash脚本编程的语法知识点总结第一部分

bash脚本编程的所有语法知识点总结第一部分 名词概念 bash脚本编程,从字面意思理解也就是shell脚本编程.bash应该是目前Linux上最流行的shell脚本解释程序.shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的.较复杂的系统管理任务,类似于Windows中的批处理文件. 1.shell脚本格式 第一行,顶格. eg: #!/bin/bash #!/usr/bin/python 其它的以#开头的行均为注释,会被解释器忽

bash脚本编程的语法知识点总结第二部分

bash脚本编程的语法知识点总结第二部分 承接第一部分进行总结分析 6.bash编程之交互编程 read -p"prompt" //提示 -ttimeout 给变量默认值 varName=${varName:-value} 如果varName不空,则返回varName的值:否则varName会使用value作为其值 使用read参数[-p]后,允许在[-p]后面跟一字符串,在字符串后面跟n个shell变量.n个shell变量用来接收从shell界面输入的字符串 [-p]用法:read

bash脚本编程详细剖析

bash脚本编程详细剖析          背景:bash脚本编程是Linux学习一个至关重要的部分,想完成一个脚本可能很简单:但是想让自己的脚本写的让人觉得心旷神怡实为不简单.bash是所有Linux发行版的几乎都有的,因此我们这里以bash脚本为例,讨论bash脚本的编写方法.对于bash脚本编程中一些比较重要的知识点,我这里也会给予案例演示. 一.脚本编程中前话: 我们都知道,bash脚本编程说白了就是命令的堆积.只不过这种堆积的方式不是杂乱无章的堆积,而是按照一定要求和格式的链接.这说明

bash脚本编程入门

bash脚本编程(与面向过程相似) 一.基础知识 1.程序:语句和表达式 顺序执行 选择执行 循环执行 2. 程序 = 指令 + 数据 面向过程编程  :以指令为中心组织数据 面向对象编程  :以数据为中心组织指令 3.程序的执行模型 : (以C语言编程为例)编译执行:源代码->预处理->编译->汇编->链接(通过编译器)->运行 (bash脚本编程) 解释执行:源码  ->(解释器)-> 运行 bash脚本的解释器bash bash脚本一般以.sh结尾,例如vi