函数允许您对分解成更小的,逻辑子部分,然后可以被要求执行各项任务时,它需要一个脚本的整体功能。
使用函数来执行重复性的任务,是一个很好的方式来创建代码的重用。代码重用是现代面向对象编程的原则的重要组成部分。
Shell函数是类似于其他编程语言中的子程序,过程和函数。
创建函数:
声明一个函数,只需使用以下语法:
function_name () {
list of commands
}
函数名 function_name,这就是你将使用它从其他地方在你的脚本调用。函数名必须遵循括号内,后括号内的命令的列表。
例如:
以下是使用函数简单的例子:
#!/bin/sh
# Define your function here
Hello () {
echo "Hello World"
}
# Invoke your function
Hello
当你想执行上面的脚本,它会产生以下结果:
$./test.sh
Hello World
$
参数传递给函数:
你可以定义一个函数,它接受参数,而调用这些函数。将这些参数代表$1,$2,依此类推。
以下是一个例子,我们传递两个参数Zara和Ali ,然后我们捕获和打印这些参数函数。
#!/bin/sh
# Define your function here
Hello () {
echo "Hello World $1 $2"
}
# Invoke your function
Hello Zara Ali
这将产生以下结果:
$./test.sh
Hello World Zara Ali
$
从函数的返回值:
如果你执行一个exit命令从一个函数内部,其效果不仅是终止执行的功能,而且Shell 程序中调用该函数。
如果你不是想,只是终止执行该函数,再有就是退出来的一个定义的函数。
根据实际情况,你可以从你的函数返回任何值,使用返回的命令,其语法如下:
return code
这里的代码可以是任何你选择这里,但很明显,你应该选择你的脚本作为一个整体的背景下是有意义的或有用的东西。
例子:
下面的函数返回一个值1:
#!/bin/sh
# Define your function here
Hello () {
echo "Hello World $1 $2"
return 10
}
# Invoke your function
Hello Zara Ali
# Capture value returnd by last command
ret=$?
echo "Return value is $ret"
这将产生以下结果:
$./test.sh
Hello World Zara Ali
Return value is 10
$
嵌套函数:
函数更有趣的功能之一是,他们可以调用本身以及调用其他函数。被称为递归函数调用自身的函数。
经过简单的例子演示了一个嵌套的两个函数:
#!/bin/sh
# Calling one function from another
number_one () {
echo "This is the first function speaking..."
number_two
}
number_two () {
echo "This is now the second function speaking..."
}
# Calling function one.
number_one
这将产生以下结果:
This is the first function speaking...
This is now the second function speaking...
从提示的函数调用:
你可以把常用功能 .profile 的定义,这样他们就会每当登录,在命令提示符下,您可以使用它们。
或者,你可以在一个文件中的定义分组为 test.sh,然后通过键入当前shell中执行该文件:
$. test.sh
这样做的效果造成任何test.sh内定义的函数,可以阅读在如下定义为当前shell:
$ number_one
This is the first function speaking...
This is now the second function speaking...
$
要删除从 shell 函数的定义,可以使用unset命令 .f 选项。这是相同的命令来删除一个变量的定义Shell。
$unset .f function_name
所有的Unix命令来与一些可选的和强制性的选择。忘记这些命令的完整语法,这是很常见。
因为没有人能记得每一个UNIX命令和选项,一直提供在线帮助,因为在Unix早期的时候。
Unix的版本的帮助文件,被称为手册页。如果你知道任何命令的名字,但你不知道如何使用它,那么手册页来帮助你。
语法
下面是一个简单的命令来获得系统工作,而任何Unix命令的细节:
$man command
例子:
现在,你能想象的任何命令,你想要得到的帮助。假设你想知道关于pwd ,那么你只需要使用下面的命令:
$man pwd
上面的命令将打开一个帮助你会给你pwd命令的完整信息。亲自试一试在你的命令提示符下,以获得更多的细节
你可以得到完整的细节上man命令本身使用下面的命令:
$man man
手册页部分:
手册页一般分为部分,一般的man page作者偏好变化。下面是一些较常见的部分:
部分 | 描述 |
NAME | Name of the command |
SYNOPSIS | General usage parameters of the command. |
DESCRIPTION | Generally describes of the command and what it does |
OPTIONS | Describes all the arguments or options to the command |
SEE ALSO | Lists other commands that are directly related to the command in the man page or closely resembling its functionality. |
BUGS | Explains any known issues or bugs that exist with the command or its output |
EXAMPLES | Common usage examples that give the reader an idea of how the command can be used. |
AUTHORS | The author of the man page/command. |
最后,我要说的是手册页是一个重要的研究资源和第一途径,当你需要在Unix系统信息的命令或文件。
有用的Shell命令:
现在你知道如何着手,链接后会给你一个最重要和最频繁使用的Unix Shell命令列表。
如果你不知道如何使用的任何命令,然后使用手册页获取有关命令的完整细节。
这里是清单 shell - 有用的命令