`

Shell学习(6)函数

阅读更多

函数

 

 

 

Bash调用函数不会开启新的子shell,会在现有的shell环境中执行该函数。

函数的语法形式:

 

 调用:函数名 参数1 参数2 ....

FUNCNAME变量,值的内容是函数名

取消函数定义:unset -f 函数名

return指令  $?传回值

作用范围:函数仅在定义的shell环境中有效,如果要传递函数给子shell环境使用,可使用内置命令export和-f选项:export -f 函数名
如果没有特别设定变量的属性,那么在script中自定义的变量称为全局变量,作用范围在整个script文件中
内置命令local,设定变量属性为私有
主程序中,尽量不要用传入函数的全局变量的值来控制函数执行后的程序流程

位置参数
含义

移动位置参数:shift n
指定位置参数:set命令

例子:

#!/bin/bash
declare -i i=0
set 61 62 63 64 65 66 67 68 69 70
for p in $@
do
	((i++))
	echo "第 $i 个位置参数 \$$i=$p"
done

  

 

 

运用位置参数传递参数值给函数时,原有的位置参数会被保存,其内含值不会受到影响
取用命令行的选项和参数:


getopts 选项行 选项变量


选项行由各选项的单一字符组成,getopts由命令行取得选项,把它放入选项变量中,如果该选项需要额外的参数,参数值会放入OPTARG变量中
例子:

#!/bin/bash
while getopts u:ah opt
do
	case $opt in
	u)
	echo "提供了选项u和参数:$OPTARG";;
	a)
	echo "提供了选项a";;
	h)
	echo "提供了选项h";;
	*)
	;;
	esac
done

 

 

 

 

建立函数库
例子见后页

归函数

例子:

#!/bin/bash
function factor_in () {
	local tmp
	local tmp1
	
	tmp="$1"
	if [ $tmp -eq 1 ] ; then
		echo -n " 1 "
		r=1
	else
		echo -n " $tmp * "
		tmp1=$tmp
		tmp=$(($tmp-1))
		factor_in $tmp
		r=$(($tmp*$r))
	fi
}
if [ $# -ne 1 ] ;then
	echo "使用方法:$0 正整数"
	exit 1
fi
echo
echo -n $1"! = "
factor_in $1
echo -n "= $r"
echo

 

 

 

 

function 函数名称()
{
	命令区域
}

函数名称()
{
	命令区域
}

function 函数名称
{
	命令区域
}

 

分享到:
评论

相关推荐

    linux shell学习资料

    《Linux Shell编程艺术》可能会详细讲述Shell的语法特性,包括变量、条件语句、循环结构、函数定义、输入/输出重定向等。这本书可能会深入探讨如何利用Shell的高级特性,如正则表达式、管道、进程控制和信号处理,来...

    未公开的Shell.dll 函数。|推荐代码

    通过研究这些文件,开发者可以学习到如何利用未公开的Shell.dll函数,以及如何在VB程序中实现自定义排序,同时可能也会了解到一些基本的SEO优化策略。然而,由于这些函数是非官方的,所以在实际开发中应谨慎使用,...

    实用的shell学习资料

    **实用的Shell学习资料概述** Shell是Linux和Unix操作系统中的一种命令解释器,它作为用户与操作系统之间交互的界面,允许用户输入命令并执行。在众多的Shell中,Bash(Bourne Again SHell)是最流行的一个,广泛...

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    下面将详细介绍创建 Shell 脚本、Shell 基础语法、流程控制语法以及如何定义和使用 Shell 函数。 首先,让我们理解一下 Shell 编程的基础。Shell 是操作系统提供的一种命令解释器,用户通过 Shell 与操作系统进行...

    SHELL基础学习指导

    在Shell学习中,首先需要了解的是一些基础概念。例如,当用户登录到Linux系统时,系统会根据/etc/passwd文件中的信息来决定使用哪个Shell。用户可以在命令提示符下输入命令,由Shell进行解释和执行。例如,输入命令...

    linux运维学习笔记:Shell函数.pdf

    Shell函数是Linux系统中shell脚本编程的一个重要特性,它允许用户将一段可复用的代码封装成一个函数,通过一个名称来调用执行。Shell函数类似于其他编程语言中的函数,但它们在shell脚本执行时才被解释器解释,而...

    19-shell+函数

    `19-shell+函数`的主题深入讲解了Shell的语法和程序设计,这对于系统管理员、自动化工程师以及对Linux有兴趣的初学者来说是非常重要的学习内容。下面将详细介绍Shell脚本的基础知识及其函数使用。 首先,Shell脚本...

    shell脚本学习指南

    **Shell脚本学习指南** Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、...

    linux shell基本语法经典以及函数简介

    linux下的shell编程,本人从事linux下的工作多年,总结了一些经验,希望能够帮助新童鞋快速学习linux,快速掌握shell脚本,提高工作效率

    shell学习经典资料

    以下是对标题“shell学习经典资料”及相关文件的详细解析: 首先,我们看到标题提及了“shell学习”,这指的是对shell编程的学习。Shell编程是一种使用命令行界面编写脚本的技能,它允许用户通过编写简单的或复杂的...

    shell中的函数、硬链接、软链接、权限、特定变量$1,$#等

    本文将深入探讨Shell中的函数、硬链接、软链接、权限管理以及特定变量如$1和 $#等概念。 首先,让我们从Shell函数开始。函数在Shell脚本中起到模块化代码的作用,可以重复使用并降低复杂性。定义一个函数的基本语法...

    shell脚本学习指南,中文清晰带书签

    - **函数定义与调用**:Shell脚本支持函数定义,可以提高代码的复用性和可读性。 - 示例: ```bash function greet() { echo "Hello, $1" } greet "Alice" ``` - **错误处理**:通过设置脚本的退出状态码...

    shell abs英文版

    6. **函数与脚本设计**:编写可复用的函数,学习如何组织脚本以提高代码的可读性和可维护性。 7. **调试与错误处理**:学习如何调试脚本,设置陷阱(trap)处理异常,以及如何优雅地处理错误。 8. **文件与目录...

    未公开的Shell.dll 函数(11KB)

    "源码"提示这里有源代码供学习和分析,而"资源"可能是指在使用这些函数时可能涉及的系统资源或程序资源。 压缩包内的文件列表如下: 1. `UndocSH.bas`: 这可能是一个Basic语言编写的模块,包含了对未公开`Shell.dll...

    linux shell脚本学习文档

    这份"Linux Shell脚本学习文档"是针对初学者的一份详细教程,旨在帮助读者快速理解和掌握Bash Shell脚本的基本概念和用法。 首先,让我们从基础开始。在Shell脚本中,每一行都是一个命令或指令,可以执行诸如创建、...

    shell脚本学习指南pdf

    **Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...

    shell基础学习资料.rar

    6. **通配符和globbing**:在Shell中,通配符如`*`(匹配任意字符序列)和`?`(匹配单个任意字符)用于文件名匹配。Globbing是Shell的自动扩展功能,能够将通配符转化为与之匹配的文件名列表。 7. **命令别名和函数...

    shell脚本学习手册

    ### Shell脚本学习手册知识点概览 #### 一、Shell脚本基础 1. **Shell概念** - Shell是一个用C语言编写的程序,它作为用户与Linux系统的桥梁,提供了一个命令行接口来访问操作系统服务。 - Shell既是命令语言也...

    shell编程学习资料

    6. **函数**:可以定义并调用函数,将相关操作封装起来,提高代码复用性。 三、文本处理工具:sed和awk 1. **sed**:流编辑器(Stream Editor),常用于对文本流进行替换、删除、插入等操作。例如,`sed 's/old/...

Global site tag (gtag.js) - Google Analytics