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 函数相关推荐

  1. Linux的shell脚本函数教程

    Linux的shell脚本函数教程 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.shell中函数使用示例 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.she ...

  2. Shell脚本函数(函数传参、递归、创建库)

    Shell脚本函数 一.Shell函数 1.Shell函数定义 2.函数的返回值 return echo 二.函数传参 三.函数变量的作用范围 四.递归 1.阶乘 2.递归目录 五.创建库 一.She ...

  3. linux文件的定义变量的值,linux shell 自定义函数方法(定义、返回值、变量作用域)...

    一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带functi ...

  4. linux shell 自定义函数(定义、返回值、变量作用域)介绍

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

  5. linux无filelength函数,Linux Shell 自定义函数(定义、返回值、变量作用域)介绍

    定义Shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 可以带function f ...

  6. Shell Curses 函数库

    用于 Shell 脚本的终端函数 "Shell Curses"是一个脚本函数库,这些函数为 Shell 程序员提供了将基于文本的光标移动到屏幕上指定位置的能力.这种能力允许使用 S ...

  7. shell trim函数

    shell trim 函数 trim() {local var="$*"# remove leading whitespace charactersvar="${var# ...

  8. Shell脚本函数应用

    记录:429 场景:Shell脚本函数应用,定义函数,函数调用,函数传参. 版本:CentOS Linux release 7.9.2009. 1.普通函数 示例普通函数是没有入参和返回值. 1.1脚 ...

  9. linux 变量函数返回值,linux shell 自定义函数(定义、返回值、变量作用域)介绍...

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

  10. shell自定义函数

    转载地址:https://www.cnblogs.com/oxspirt/p/7246075.html "sum=$(fsum 2 5)"这种方式,是将标准输出(echo 出来的东 ...

最新文章

  1. Android View关系图
  2. 1.16 static关键字(静态变量和静态方法)
  3. CodeForces - 182D Common Divisors(KMP的next数组)
  4. 16x16x16 4096个RGB LED的光立方是一种怎样的神奇效果?视频展示制作全过程
  5. C#的winform的中委托显示图片
  6. P102、面试题14:调整数组顺序使奇数位于偶数前面
  7. 泰山200机架服务器包含哪些型号_机柜的品牌有哪些?机柜如何安装布线?这次终于可以布好线了...
  8. 从贝叶斯方法谈到贝叶斯网络
  9. 天宇物流公司创业计划书
  10. linux微软公式编辑器,linux下的公式编辑器
  11. 利用MATLAB 实现证件照换底色教程
  12. Multiprocessing 学会多进程 (莫烦 Python 教程)笔记-4-进程池pool
  13. Go语言: go-redis客户端通过MSet方法一次性批量写入多个key的值
  14. Linux 启动管理(详细版)
  15. Python教程:在Python中遍历列表详解
  16. 笔记本电脑用u盘一键重装系统步骤
  17. python测验6_测验6: 组合数据类型 (第6周)
  18. [唐诗]古风(其一)-李白
  19. 遥感影像去背景 之 数据裁剪
  20. mybatisSql编写小结

热门文章

  1. Excel根据批注的内容自动调整批注大小
  2. shell 循环语句
  3. 跟着鸟哥学linux【二】
  4. Cron表达式的语法及详细用法
  5. 计算空间中两线段之间的距离
  6. 华为ap WA131SN-NZ设置胖ap开启wifi无线网络
  7. makefile和make
  8. C语言程序设计第五章循环结构程序设计总结
  9. js字母大小写转换方法
  10. Azure DevOps —— Azure Artifacts 包管理平台