博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell函数
阅读量:7232 次
发布时间:2019-06-29

本文共 1227 字,大约阅读时间需要 4 分钟。

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

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

shell中函数使用

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

function func() {...}

func(){...}

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

在函数中,位置参数($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)。

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

 

一般直接调用函数即可:函数名 参数1 参数2  

需要函数返回值时才需要命令代换。

 

参考:

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

你可能感兴趣的文章
es6-Generator
查看>>
Python3.6单例模式报错TypeError: object() takes no parameters的解决方法
查看>>
HTML常用标记(选择性,不全)
查看>>
用一辈子去领悟的22条生活真谛
查看>>
1968: [Ahoi2005]COMMON 约数研究
查看>>
discuz 启用html code 显示问题
查看>>
A1027. Colors in Mars (20)
查看>>
[SRM568]DisjointSemicircles
查看>>
9个很有发展潜力的PHP开源项目
查看>>
python中pymysql数据编码的问题
查看>>
HDFS基本原理及数据存取实战
查看>>
j2ee页面静态化方案encache web cache框架详解1
查看>>
php高级注入
查看>>
[硬件]三维点云数据获取
查看>>
nagios安装配置
查看>>
bzoj 2763 [JLOI2011]飞行路线 Dijikstra 分层
查看>>
HEOI2018 游记
查看>>
UITableViewCell 取消选中的蓝色背景
查看>>
MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关
查看>>
hibernate理解
查看>>