`

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函数.pdf

    linux运维学习笔记:Shell函数

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

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

    shell脚本学习手册

    Shell教程入门 3 1、shell脚本 3 ...Shell函数 27 Shell 输入/输出重定向 30 1、输出重定向 31 2、输入重定向 31 3、重定向深入讲解 31 4、Here Document 32 5、/dev/null文件 33 Shell文件包含 33

    Shell脚本学习笔记

    第1章 BashShell命令 6 1.1 Shell提示符 6 1.2 文件与目录Shell命令 7 1.2.1 更改目录命令(cd) 7 1.2.2 列表命令(ls) 7 1.2.3 操作文件命令 10 1.2.4 目录处理命令 14 1.2.5 查看文件内容命令 15 1.3 监控程序 20 ...

    学习shell必备(CN).chm

    一本深入学习shell脚本艺术的书籍 Mendel Cooper 春敏 杨 - 毅 黄 - 3.9.1 2006年5月26日 这本书假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易就能够达到中...

    bash shell学习笔记

    使用LINUX命编写脚本。bash快捷键、Linux有关网络配置的命令 一、创建shell脚本、重定向输入与输出...六、创建函数:基本的脚本函数、返回值、在函数中使用变量、数组变量和函数、函数递归、创建库、在命令行上使用函数

    VB中shell函数实例——大学生最需要的七类网站

    VB中shell函数实例——大学生最需要的七类网站,学习用可以

    Linux shell命令 学习总结

    Linux 下关于shell命令的基本介绍 gwak iconv函数 sz和rz命令 数组的基本操作 ls命令

    十分钟轻松学习系列: 2020-3-19_SHELL学习_函数基础

    出于对培训章节考虑,因为后续需要用函数完成各种demo,所以先粗略讲一下函数,以免在后续课程中,对函数不了解,不知道写法为何意 ...上述就是一个完整的无参数函数调用过程,可粘贴脚本内容直接在shell中运行

    实验报告2_shell及shell编程.doc

    1. 学习shell的功能及相关配置文件,及Bash常用命令 2. 学习shell脚本的编写格式 3. 学习编写简单的Bash脚本

    Linux下Shell编程从入门到精通视频教程.txt

    20、Shell编程之学习心得分享及拓展.mp4 19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量...

    Shell学习15天(函数基本概念)- 08day

    完成特定功能的代码片段(块),在shell中定义函数可以使用代码模块化,便于复用代码。函数必须先定义才能使用 (二) 如何定义函数 方法1: function 函数名 { 函数要实现的功能代码 } 方法2: 函数名() { 函数要...

    Shell 函数参数

    主要为大家分享了Shell 函数参数,方便学习shell脚本的朋友

    新版Linux Shell编程实训(全)20170518.docx

    8.1.1 Shell中函数的定义 147 8.1.2 函数参数 150 任务8.2 Shell案例 151 8.2.1 指定多个文件的行数 151 8.2.2 当前目录的所有文件 153 练习(每题50分,共计100分) 156 项目九 Shell输入/输出重定向 158 [学习目标...

    UNIX shell 编程指南

    awk的学习 保护自己编写的shell程序 农行全国集中版代发工资shell程序 Shell程序设计的流程控制 身份证升位shell版(15位到18位) bash的内部命令 shell技术要点 unix下快速切换目录的shell linux shell 变量和运算符 ...

    高级Shell脚本编程.zip

    这是shell中文chm文档,可供运维人员以及相关人员下载参考使用,详细的描述了shell开发中使用的各种指令和函数。

    Linux与unix shell编程指南

    本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令...

    学习笔记《LINUX+SHELL脚本攻略》Sarath Lakshman

    数也能像环境变量一样用export到处,如此,函数的作用域就可以扩展到子进程中。 export -f fname Linux export命令用于设置或显示环境变量。 在shell中执行程序时,shell会提供一组环境变量。export可新增,修改...

    Linux命令学习 shell pdf格式

    第十九章 shell函数 第二十章 向脚本传递参数 第二十一章 创建屏幕输出 第二十二章 创建屏幕输入 第二十三章 调试脚本 第二十四章 shell嵌入命令 第五部分 高级shell编程技巧 第二十五章 深入讨论 第二十六章 shell...

Global site tag (gtag.js) - Google Analytics