shell函数

发布时间:2017-2-27 20:14:35 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"shell函数 ",主要涉及到shell函数 方面的内容,对于shell函数 感兴趣的同学可以参考一下。

参考:http://www.cnblogs.com/jiqing9006/p/3253232.html

参考:《shell脚本学习指南》 O'Reilly

shell中函数使用

像其他程序语言一样,函数是指一段单独额程序代码,用以执行一些定义完整的单项工作。在大型程序里,函数可以在程序的多个地方使用。

函数在使用之前必须先定义。

在函数中,位置参数($1、$2、……,$#,$*, $@)都是函数的参数。父脚本的参数临时地被函数参数所掩盖(shadowed)或隐藏。$0依旧是父脚本的名称。当函数完成时,原来的命令行参数会恢复。

在shell函数中,return命令的功能与工作方式都与exit相同,但需要注意的是:在shell函数体里使用exit,会终止整个shell脚本。

因为return会返回一个退出值给调用者,所以可以在if与while里使用函数。举例来说,可使用shell的函数架构取代test所执行的两个字符串的比较:

#equal --- 比较两个字符串

equal() {

  case "$1" in

  "$2")  return 0 ;;

  esac

  return 1

}

if equal "$a" "$b" ...

if ! equal "$a" "$b" ...

return未提供参数,则使用默认退出状态,也就是最后一个执行的命令的退出状态。如果这就是你要的,那么严谨的shell函数写法:

  return $?

警告:有些shell允许在脚本里使用return,但如果用于函数体之外,则视为等同exit。这种用法并不建议,因为会出现可移植性的困扰。

函数(至少在posix shell里)没有提供局部变量(bash、ksh88以及zsh都提供局部变量功能,但语法不尽相同),因此所有的函数都与父脚本共享变量。即,你必须小心留意不要修改父脚本里不期望被修改的东西,如PATH。不过这也表示其他状态是共享的,例如当前目录与捕捉信号。

函数调用方法之一

#!/bin/bash# testing the scriptfunction myfun {  read -p "Enter a value:" value  echo $[ $value * 2 ]}result=`myfun`echo "The new vlue is $result"

函数调用有两种方式(即命令代换方法):`fun`(反引号) 或 $(fun)

若有参数可直接放在函数名后,`fun param1 param2`或$(fun param1 param2)  

参考:

http://www.cnblogs.com/jiqing9006/p/3253232.html

上一篇:Using Text_IO To Read Files in Oracle D2k
下一篇:你的成功在于你每天养成的习惯

相关文章

关键词: shell函数

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

最近更新