【shell】shell 函数
shell 函数
1.定义函数
方法一
函数名(){函数要实现的功能
}
方法二
function 函数名{函数要实现的功能
}
如果函数需要传递参数的的用$1,$2,局部变量定义用local,返回值的话return $?(最后一句执行成功情况)
2.实例
2.1 阶乘实例
[klaus@localhost chapt7]$ cat factor.sh
#!/bin/bashfactorial(){factor=1for(( i=1;i<=$1;i++ ))do#factor=$[$factor * $i]#let factor=$factor*$ilet factor*=$idoneecho "The factorial of $1 is $factor"
}factorial $1
[klaus@localhost chapt7]$ ./factor.sh 5
The factorial of 5 is 120
2.2 函数返回值传递
这里的local表示局部变量,在当前阶段使用,理解同c语言的局部变量
[klaus@localhost chapt7]$ cat return.sh
#!/bin/bash
factorial(){local factor=1for(( i=1;i<=$1;i++ ))dolet factor*=$idoneecho "The factorial of $1 is $factor"
}double_read(){read -p "please enter a num:" numecho $[2*$num]
}result=`double_read`
factorial $result
[klaus@localhost chapt7]$ ./return.sh
please enter a num:3
The factorial of 6 is 720
shell里面,return的值不能超过255,而且只是整数,如果需要返回浮点数或者小数就不能使用return的方式,echo这个可以考虑一下。而且return的结果也不能直接赋值给某个变量,不能直接使用,查看return的值用$?
[klaus@localhost chapt7]$ cat test.sh
#!/bin/bashtest(){read -p "plese enter a num:" numreturn $[3*$num]
}
test
echo "test result return value is $?"
[klaus@localhost chapt7]$ ./test.sh
plese enter a num:100
test result return value is 44
[klaus@localhost chapt7]$ ./test.sh
plese enter a num:5
test result return value is 15
3.函数数组传递
同样先来看一下一个简单的数组内元素累乘的样例
[klaus@localhost chapt7]$ cat array_acc.sh
#!/bin/bash
num=(1 2 3 4 5)
#echo "all array num is ${num[@]}"array(){local factor=1local ifor i in "$@"dofactor=$[$factor*$i]doneecho "$factor"
}
result=`array ${num[@]}`
echo "result is $result"
[klaus@localhost chapt7]$ ./array_acc.sh
result is 120
函数接收的位置参数为$1,$2,$3,$4…
函数接收数组变量为 ∗ 或 者 *或者 ∗或者@
然后函数将接收到的所有参数赋值给数组,这样就能完成数组的调用,其中函数使用参数的个数用$#表示
[klaus@localhost chapt7]$ cat doubleArray.sh
#!/bin/bash
num=(1 2 3 4 5)
array(){echo "all parameters is $*"local newarray=($*)local ifor(( i=0;i<$#;i++ ))dooutarray[$i]=$[ newarray[$i]*2 ]doneecho "${outarray[*]}"
}result=`array ${num[*]}`
echo "${result[*]}"
[klaus@localhost chapt7]$ ./doubleArray.sh
all parameters is 1 2 3 4 5
2 4 6 8 10
【shell】shell 函数相关推荐
- Linux的shell脚本函数教程
Linux的shell脚本函数教程 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.shell中函数使用示例 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.she ...
- Shell脚本函数(函数传参、递归、创建库)
Shell脚本函数 一.Shell函数 1.Shell函数定义 2.函数的返回值 return echo 二.函数传参 三.函数变量的作用范围 四.递归 1.阶乘 2.递归目录 五.创建库 一.She ...
- linux文件的定义变量的值,linux shell 自定义函数方法(定义、返回值、变量作用域)...
一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带functi ...
- linux shell 自定义函数(定义、返回值、变量作用域)介绍
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...
- linux无filelength函数,Linux Shell 自定义函数(定义、返回值、变量作用域)介绍
定义Shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 可以带function f ...
- Shell Curses 函数库
用于 Shell 脚本的终端函数 "Shell Curses"是一个脚本函数库,这些函数为 Shell 程序员提供了将基于文本的光标移动到屏幕上指定位置的能力.这种能力允许使用 S ...
- shell trim函数
shell trim 函数 trim() {local var="$*"# remove leading whitespace charactersvar="${var# ...
- Shell脚本函数应用
记录:429 场景:Shell脚本函数应用,定义函数,函数调用,函数传参. 版本:CentOS Linux release 7.9.2009. 1.普通函数 示例普通函数是没有入参和返回值. 1.1脚 ...
- linux 变量函数返回值,linux shell 自定义函数(定义、返回值、变量作用域)介绍...
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...
- shell自定义函数
转载地址:https://www.cnblogs.com/oxspirt/p/7246075.html "sum=$(fsum 2 5)"这种方式,是将标准输出(echo 出来的东 ...
最新文章
- Android View关系图
- 1.16 static关键字(静态变量和静态方法)
- CodeForces - 182D Common Divisors(KMP的next数组)
- 16x16x16 4096个RGB LED的光立方是一种怎样的神奇效果?视频展示制作全过程
- C#的winform的中委托显示图片
- P102、面试题14:调整数组顺序使奇数位于偶数前面
- 泰山200机架服务器包含哪些型号_机柜的品牌有哪些?机柜如何安装布线?这次终于可以布好线了...
- 从贝叶斯方法谈到贝叶斯网络
- 天宇物流公司创业计划书
- linux微软公式编辑器,linux下的公式编辑器
- 利用MATLAB 实现证件照换底色教程
- Multiprocessing 学会多进程 (莫烦 Python 教程)笔记-4-进程池pool
- Go语言: go-redis客户端通过MSet方法一次性批量写入多个key的值
- Linux 启动管理(详细版)
- Python教程:在Python中遍历列表详解
- 笔记本电脑用u盘一键重装系统步骤
- python测验6_测验6: 组合数据类型 (第6周)
- [唐诗]古风(其一)-李白
- 遥感影像去背景 之 数据裁剪
- mybatisSql编写小结