shell脚本(函数定义及参数调用)
2019-06-24 22:04
1246 查看
函数的定义及参数调用
函数是完成特定功能的代码片段,在shell中定义函数可以使用代码模块化,便于调用,函数必须先定义才可以使用。
一、定义函数的方式
方法一:
函数名() {
函数要实现的功能代码
}
方法二:
function 函数名 {
函数要实现的功能代码
}
二、调用参数
函数名 变量
函数名 变量重新赋值
函数名 位置变量$1 $2 $3.....
以下是函数传参的一些示例
函数位置变量的传递
#!/bin/bash ########函数的位置参数传递 if [ $# -ne 3 ];then #如果脚本后接的参数不等于3个,那么则打印脚本用法并退出 echo "usage: : `basename $0` par1 par2 par3" exit fi fun() { echo "$[$1 * $2 * $3]" #这里的$1 $2 $3是函数的位置参数 } result=`fun $1 $2 $3` #而这里的$1 $2 $3是脚本的接受的位置参数,而fun函数将脚本接受的位置参数传递到了函数中 echo "$result"
函数调用数组变量中的数值
################# #该脚本先定义数组,其中有1-5个值,而后定义一个arry函数,作用是接收外部参数num的数值,并且每次取值与sum值相乘 num=(1 2 3 4 5) #定义数组num sum=1 #定义sum初始值为1 #定义函数array arry() { for i in "$@" # "$@" 为所有参数 $* 也代表所有参数,不需要加“” do let sum*=$i #sum的值与$i读取的值相乘,再赋值给自己 done } arry ${num[@]} # 执行函数array,读取$num中的值. echo $sum
#!/bin/bash #以上脚本作用和该脚本相同,执行脚本时带数字参数,for循环所有数字,逐个给sum2相乘 sum2=1 for j in $* do let sum2*=$j done echo $sum2
以下例子举例如何从定义变量中拿参数并重新赋值给函数中变量
local 变量名 是为了不与其他变量冲突,只在该函数中生效,不影响全局
#!/bin/bash ############## #接收变量重新赋值 #传递参数到函数中,并且重新计算赋值 ################ num=( 1 2 3 ) #赋值数组num #定义函数array array() { local newnum=($*) #定义函数局部变量newnum local i #定义函数局部变量i for ((i=0;i<$#;i++)) # $#为接收的所有参数 $*同理 此行即为 $i起始值为0,给下面new作为索引,索引值<$# do product[$i]=$[${newnum[$i]} * 5] #将每次遍历newnum数组的值乘以5,重新赋值给new done } array ${num[@]} #调用函数array echo ${product[@]} #输出$num数组的值
小扩展,函数返回值
#!/bin/bash ### ##funtion的函数返回值 return ############ fun() { read -p "enter number: " num let sum=2*$num #返回$?的值 return $[2*$num] } fun #shell的返回值不能超过255,无论你输入什么数字,以上运算返回的值都在255以内 echo "fun return value: $?"
相关文章推荐
- shell 脚本-函数的定义和调用
- Shell脚本通过参数传递调用指定函数
- Shell脚本的基本语法(二) 预定义特殊字符、case语句和函数调用
- Shell脚本函数定义和函数参数
- shell脚本中实现脚本a里面的函数调用脚本b中的函数参数-用到source关键字
- Shell脚本函数定义和函数参数
- Shell脚本函数定义和函数参数
- shell中两个函数(带参数)相互调用
- C程序调用shell脚本共有三种方式:system()、popen()、exec系列函数
- java jsp调用shell(带参数)脚本并返回值
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
- 复习4次课(12月1日) 1.1 函数定义 1.2 函数的参数 1.3 函数的默认参数 1.4 函数的变量 1.5 函数的返回值 1.6 多类型传值和冗余参数 1.7 函数的递归调用
- shell脚本之函数的定义及使用
- 【python】函数定义 参数 调用
- shell 脚本之获取命令输出字符串以及函数参数传递
- 通过进程检测服务时脚本文件名不要起要检测的服务名字命名 shell程序从上到下执行若定义函数或引用系统函数需先定义 kill -USR2
- C-015.函数的基本概念、定义、调用、返回值、参数和声明
- (九)JavaScript之【JS函数(定义、参数、调用、【闭包】、call(),apply())】[较深,胆小勿进]
- shell脚本中调用java程序,并传递参数的方法
- python 调用dll中参数为BYTE的函数(注意接口定义的格式)