函数由两部分组成:
标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结,因为脚本在查看调用脚本前将首先搜索函数调用相应的 s h e l l。
定义函数的格式为:
函数名()
{
命令1
. . .
}
或者
function 函数名()
{ ...
}
两者方式都可行。如果愿意,可在函数名前加上关键字function,这取决于使用者。
创建函数文件
下面创建包容函数的函数文件并将之载入shell,进行测试,再做改动,之后再重新载入。
函数文件名为functions.main,内容如下
#!/bin/sh
#functions.main
#
#findit: this is front end for the basic find command
findit() {
#findit
if [ $# -lt 1 ]; then
echo "usage : findit file"
return 1;
fi
find . -name $1 -print
}
定位文件
定位文件格式为:
. /pahname/filename
现在文件已经创建好了,要将之载入shell,试键入:
$. functions.main
如果返回信息file not found,再试:
$. /functions.main
此即<点> <空格> <斜线> <文件名>,现在文件应该已载入shell。如果仍有错误,则应该仔细检查是否键入了完整路径名
检查载入函数
使用set命令确保函数已载入。set命令将在shell中显示所有的载入函数。
/home/l/g/tomotoboy/function >. function.main
/home/l/g/tomotoboy/function >set
……
_=function.main
findit ()
{
if [ $# -lt 1 ]; then
echo "usage : findit file";
return 1;
fi;
find . -name $1 -print
}
执行shell函数
要执行函数,简单地键入函数名即可。这里是带有一个参数的 findit函数,参数是某个文件
/home/l/g/tomotoboy/function >cd .
/home/l/g/tomotoboy/function >cd ..
/home/l/g/tomotoboy >findit sed.txt
./testdirec/sed.txt
./sed.txt
删除shell函数
现在对函数做一些改动。首先删除函数,使其对shell不可利用。使用unset命令完成此功能。删除函数时unset命令格式为:
unset function_name
$unset findit
如果现在键入set命令,函数将不再显示。
/home/l/g/tomotoboy >unset findit
/home/l/g/tomotoboy >set
……
_=findit
/home/l/g/tomotoboy >findit sed.txt
-bash: findit: command not found
再次定位函数
/home/l/g/tomotoboy >. function/function.main
/home/l/g/tomotoboy >findit sed.txt
./testdirec/sed.txt
./sed.txt
如果函数将从测试结果中反馈输出,那么使用替换命令可保存结果。函数调用的替换格式为:
variable_name = variable_name
函数function_name输出被设置到变量variable_name中。
char_name(){
# char_name
# to call: char_name string
# assign the argument across to new variable
_LETTER_ONLY=$1
# user awk to test for character only!
_LETTER_ONLY=`echo $1|awk '{if ($0~/[^a-z A-Z]/) print 1}'`
if [ "$_LETTER_ONLY" != "" ]
then
# oops errors
return 1
else
# constains only chars
return 0
fi
}
if char_name $F_NAME; then
echo "OK"
else
echo "ERROR"
fi
测试一下
/home/l/g/tomotoboy/function >char_name hello
/home/l/g/tomotoboy/function >echo $?
0
注意^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。[^a-z A-Z] 匹配任一非字母型字符,而[^0-9]匹配任一非数字型字符。
分享到:
相关推荐
shell编程与普通的编程语言相比,shell编程可以用来执行一些流程调度以及任务量比较轻的处理流程的处理工具--因为毕竟是系统命令的整合调用,处理的时候,都会产生系统调用,在处理任务量大且比较复杂的流程的任务时...
### Shell函数:深入理解与应用 在Shell编程中,函数是一种强大的工具,它允许程序员将一系列命令封装起来,实现代码的复用、模块化以及更高级的控制结构。本文将详细解析Shell函数的基础概念、创建方法、参数传递...
下面将详细介绍创建 Shell 脚本、Shell 基础语法、流程控制语法以及如何定义和使用 Shell 函数。 首先,让我们理解一下 Shell 编程的基础。Shell 是操作系统提供的一种命令解释器,用户通过 Shell 与操作系统进行...
在VB6.0版本中,SHELL函数是一个非常重要的功能,它允许我们从Visual Basic程序中调用外部应用程序,执行命令行操作或者打开特定的文件。这个实例可能涉及到如何使用SHELL函数来实现串口通信。 串口通信是计算机...
Shell函数是Linux系统中shell脚本编程的一个重要特性,它允许用户将一段可复用的代码封装成一个函数,通过一个名称来调用执行。Shell函数类似于其他编程语言中的函数,但它们在shell脚本执行时才被解释器解释,而...
在VB(Visual Basic)编程语言中,Shell函数是一个非常实用的命令,用于执行操作系统命令或者启动应用程序。在本文中,我们将深入探讨VB中Shell函数的使用,并结合大学生可能需要的七类网站,来阐述如何利用Shell...
Shell函数是Shell编程中的核心元素,它允许我们将一系列命令组织在一起,形成可重用的代码块,从而提高脚本的可读性和效率。在Shell中,主要有三种方式来定义函数: 1. **不带`function`关键字的函数定义**: 这是...
在Linux系统中,Shell脚本是用户与操作系统交互的重要方式,而Shell函数是编写复杂脚本时不可或缺的构造块。本文将深入探讨如何在Shell中定义、调用和使用函数,以及函数参数的传递和跨文件调用。 一、无参函数的...
通过熟练掌握这些Shell函数式编程技巧,你将能够编写出更加高效、可维护的脚本,从而提升Linux系统的自动化和管理效率。记住,实践是检验真理的唯一标准,多动手编写和调试Shell脚本,才能真正领会其精髓。
这个“Excel-VBA宏编程实例源代码-以Shell函数启动bat文件并执行Dir命令.zip”是一个示例,它展示了如何利用VBA宏来调用系统外壳(Shell)函数,进而启动一个批处理(bat)文件,并执行内部的`dir`命令。接下来,...
标题中的“Linux-一组Kubernetes原生dabbling的shell函数集合”暗示了这是一个关于Linux系统和Kubernetes集群管理的实用工具集。这些shell函数旨在简化与Kubernetes交互的日常任务,提供便捷的命令行接口,提高开发...
这个“Excel-VBA宏编程实例源代码-以Shell函数启动邮件软件并发送电子邮件.zip”文件包含了一个实用的VBA宏示例,它利用了Windows操作系统中的Shell函数来启动邮件客户端并自动发送电子邮件。下面我们将详细讨论这个...
在Windows编程领域,ListView控件和Shell函数是两个重要的组件,尤其在管理和显示系统资源时。本篇文章将探讨如何利用这两个工具来展示Windows的程序组,同时也会涉及到VB(Visual Basic)网络编程的基础,包括...
Linux中的shell函数Linux中的shell函数
`composure`是一个专为撰写、文档化、版本控制以及组织shell函数而设计的工具,旨在提升shell脚本的可读性和可维护性。 在`composure`中,您可以将每个函数定义为独立的模块,这样可以更清晰地划分功能,减少代码...
在Linux系统中,掌握一些基本的IT知识是至关重要的,特别是关于shell命令、结构性语句、shell函数以及C语言的关键字。这些知识点构成了Linux系统管理和自动化运维的基础。 首先,让我们来了解一下shell命令。Shell...
day5shell函数和数组shell编程.txt
其中,Shell函数是提高脚本效率和可复用性的重要特性。本文将深入探讨Linux Shell函数的概念、创建、调用以及其在日常系统管理中的应用。 ### 1. Shell函数基础 Shell函数类似于其他编程语言中的函数,它是一段可...
Shell函数是Shell脚本编程中的重要组成部分,它们允许我们将常用的操作封装起来,提高代码的可读性和重用性。下面将详细介绍7种Shell函数的用法。 1. **在shell文件内部定义函数并引用** 在Shell脚本中定义函数很...
VBShell函数用法参照.pdf