函数
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编程艺术》可能会详细讲述Shell的语法特性,包括变量、条件语句、循环结构、函数定义、输入/输出重定向等。这本书可能会深入探讨如何利用Shell的高级特性,如正则表达式、管道、进程控制和信号处理,来...
通过研究这些文件,开发者可以学习到如何利用未公开的Shell.dll函数,以及如何在VB程序中实现自定义排序,同时可能也会了解到一些基本的SEO优化策略。然而,由于这些函数是非官方的,所以在实际开发中应谨慎使用,...
**实用的Shell学习资料概述** Shell是Linux和Unix操作系统中的一种命令解释器,它作为用户与操作系统之间交互的界面,允许用户输入命令并执行。在众多的Shell中,Bash(Bourne Again SHell)是最流行的一个,广泛...
下面将详细介绍创建 Shell 脚本、Shell 基础语法、流程控制语法以及如何定义和使用 Shell 函数。 首先,让我们理解一下 Shell 编程的基础。Shell 是操作系统提供的一种命令解释器,用户通过 Shell 与操作系统进行...
在Shell学习中,首先需要了解的是一些基础概念。例如,当用户登录到Linux系统时,系统会根据/etc/passwd文件中的信息来决定使用哪个Shell。用户可以在命令提示符下输入命令,由Shell进行解释和执行。例如,输入命令...
Shell函数是Linux系统中shell脚本编程的一个重要特性,它允许用户将一段可复用的代码封装成一个函数,通过一个名称来调用执行。Shell函数类似于其他编程语言中的函数,但它们在shell脚本执行时才被解释器解释,而...
`19-shell+函数`的主题深入讲解了Shell的语法和程序设计,这对于系统管理员、自动化工程师以及对Linux有兴趣的初学者来说是非常重要的学习内容。下面将详细介绍Shell脚本的基础知识及其函数使用。 首先,Shell脚本...
**Shell脚本学习指南** Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、...
linux下的shell编程,本人从事linux下的工作多年,总结了一些经验,希望能够帮助新童鞋快速学习linux,快速掌握shell脚本,提高工作效率
以下是对标题“shell学习经典资料”及相关文件的详细解析: 首先,我们看到标题提及了“shell学习”,这指的是对shell编程的学习。Shell编程是一种使用命令行界面编写脚本的技能,它允许用户通过编写简单的或复杂的...
本文将深入探讨Shell中的函数、硬链接、软链接、权限管理以及特定变量如$1和 $#等概念。 首先,让我们从Shell函数开始。函数在Shell脚本中起到模块化代码的作用,可以重复使用并降低复杂性。定义一个函数的基本语法...
- **函数定义与调用**:Shell脚本支持函数定义,可以提高代码的复用性和可读性。 - 示例: ```bash function greet() { echo "Hello, $1" } greet "Alice" ``` - **错误处理**:通过设置脚本的退出状态码...
6. **函数与脚本设计**:编写可复用的函数,学习如何组织脚本以提高代码的可读性和可维护性。 7. **调试与错误处理**:学习如何调试脚本,设置陷阱(trap)处理异常,以及如何优雅地处理错误。 8. **文件与目录...
"源码"提示这里有源代码供学习和分析,而"资源"可能是指在使用这些函数时可能涉及的系统资源或程序资源。 压缩包内的文件列表如下: 1. `UndocSH.bas`: 这可能是一个Basic语言编写的模块,包含了对未公开`Shell.dll...
这份"Linux Shell脚本学习文档"是针对初学者的一份详细教程,旨在帮助读者快速理解和掌握Bash Shell脚本的基本概念和用法。 首先,让我们从基础开始。在Shell脚本中,每一行都是一个命令或指令,可以执行诸如创建、...
**Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...
6. **通配符和globbing**:在Shell中,通配符如`*`(匹配任意字符序列)和`?`(匹配单个任意字符)用于文件名匹配。Globbing是Shell的自动扩展功能,能够将通配符转化为与之匹配的文件名列表。 7. **命令别名和函数...
### Shell脚本学习手册知识点概览 #### 一、Shell脚本基础 1. **Shell概念** - Shell是一个用C语言编写的程序,它作为用户与Linux系统的桥梁,提供了一个命令行接口来访问操作系统服务。 - Shell既是命令语言也...
6. **函数**:可以定义并调用函数,将相关操作封装起来,提高代码复用性。 三、文本处理工具:sed和awk 1. **sed**:流编辑器(Stream Editor),常用于对文本流进行替换、删除、插入等操作。例如,`sed 's/old/...