函数的返回值用return,脚本的返回值用exit

shell函数只允许返回数字,若不是则报line 6: return: num: numeric argument required;若是写了return,则返回return语句后跟的数值,若是没有return语句则返回最后一个命令的执行结果

Shell函数的书写规范
function name { commands } == name () { commands } #创建函数
推荐的书写函数的方法(带括号)
function 函数名() {
指令集...
return n
}
简化写法:
函数名() {
指令集...
return n
}
不推荐使用下面的方法(无括号,函数名和左大括号之间要有空格。)
function 函数名 {
指令集...
return n
}

[root@web01 scripts]# cat fun1.sh
#!/bin/bash
function fun(){
local i=var    #定义局部变量,只能在函数中使用
echo "I am $i."
echo "I like linux."
}
fun

[root@web01 scripts]#sh fun1.sh oldgril    #把脚本外的参数传给函数,运行结果为I am oldgril
#!/bin/bash
function fun(){
local i=$1
echo "I am $i."
}
fun $1

[root@web01 scripts]# cat check_url1.sh    #URL检测脚本
#!/bin/bash
. /etc/init.d/functions     #调用系统函数
function usage(){
echo "usage:$0 URL"
exit 1
}
function check_url(){
wget -q --spider -T 10 $1 &>/dev/null
if [ $? -eq 0 ]
then
action "$1 is ok" /bin/true
else
action "$1 is no" /bin/false
fi
}
function main(){
if [ $# -ne 1 ]
then
usage
else
check_url $1
fi
}
main $*

数组
[root@web01 ~]# array[3]=3   #给数组赋值([3]为数组下标)
[root@web01 scripts]# echo ${array[3]} #打印给数组赋的值
3
[root@web01 scripts]# array=(1 2 3) #静态数组设置
[root@web01 scripts]# echo ${array[0]} #[0]为数组元素的下标,默认为从0开始
1
[root@web01 scripts]# echo ${array[1]}
2
[root@web01 scripts]# echo ${array[2]}
3
[root@web01 scripts]# echo ${array[*]} 或 echo ${array[@]} #打印所有元素
1 2 3
[root@web01 scripts]# echo ${#array[@]} 或 echo ${#array[*]} #打印数组长度
3
[root@web01 scripts]# array=($(ls)) 或 array=(`ls`) #命令结果放入数组(动态数组)
[root@web01 scripts]# cat arr2.sh #用for循环打印数组内容
#!/bin/sh
array=(1 2 3 4)
for((i=0;i<${#array[*]};i++))
do
echo ${array[$i]}
done
echo ======================
for n in ${array[*]}
do
echo $n
done

Shell函数和数组的更多相关文章

  1. shell函数与数组

    shell函数与数组 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要使用shell函数 简单的说函数的作用就是把程序里多次调用的相同的代码部分定义成一份,然后起个名字, ...

  2. shell脚本函数与数组

    前言 之前写过一篇关于shell脚本流程控制总结,这次继续写关于shell脚本的问题.本篇文章主要包含shell脚本中的函数以及数组的用法介绍.同时也涵盖了一些字符串处理以及shell脚本比较使用的小 ...

  3. shell中的函数、shell中的数组、告警系统需求分析

    7月16日任务 20.16/20.17 shell中的函数20.18 shell中的数组20.19 告警系统需求分析 20.16/20.17 shell中的函数 函数就是一个子shell就是一个代码段 ...

  4. shell变量、函数和数组以及字符串的截取

    一.变量 1.shell变量名 (1)可以由字母.数字.下划线等字符组成.但是第一个字符必须是字母或者下划线. (2)若果变量中包含下划线(_)则要特别注意,$project_svn_$date.ta ...

  5. Linux centosVMware shell中的函数、shell中的数组、

    一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function _name() { command ...

  6. Shell 函数 & 数组

    Shell 函数 函数介绍 # 什么是函数? 具备某一功能的工具 => 函数 事先准备工具的过程 => 函数的定义 遇到应用场景拿来就用 => 函数的调用 # 为何要用函数? 没有引 ...

  7. shell脚本函数及数组

    函数介绍: 函数function是由若干条shell命令组成的语句块,实现代码重用和模块话编程. 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部 ...

  8. Shell函数的简单应用

    Shell函数的简单应用 在脚本内给函数传参: #!/bin/bash . /etc/init.d/functions CheckUrl (){ curl -I -s $ | head - } Che ...

  9. shell 函数

    1 shell函数的定义及其调用 shell函数有两种格式: function name { commands } name() { commands } 其中,name为函数名,commands为函 ...

随机推荐

  1. SPOJ Meteors - 可持久化线段树 - 二分法

    Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby galaxy. The plan ...

  2. MongoDB的C#驱动报错Server instance 127.0.0.1:27017 is no longer connected的解决方案

    使用C#的MondoDB驱动,一直没问题.结果最近,MongoCursor的ToList方法,取列表,总是报错 Server instance 127.0.0.1:27017 is no longer ...

  3. python ---24 正则表达式 re模块

    一.正则表达式 1.字符组 ① [abc] 匹配a或b或c ②  [a-z] 匹配a到z之间的所有字⺟ [0-9]匹配所有阿拉伯数字 2.元字符 3.量词 4.重要搭配 ①  .*? ②  .*?x  ...

  4. 求最大流dinic算法模板

    //最短增广路,Dinic算法 struct Edge { int from,to,cap,flow; };//弧度 void AddEdge(int from,int to,int cap) //增 ...

  5. P4782 【模板】2-SAT 问题

    https://www.luogu.org/problemnew/show/P4782 链接 https://www.luogu.org/problemnew/show/P4782 思路 选a就必须选 ...

  6. POJ 2226 Muddy Fields(最小点覆盖)题解

    题意:一片r*c的地,有些地方是泥地,需要铺地板.这些地板宽1,长无限,但只能铺在泥地上不能压到其他地方,问你铺满所有泥地最少几块 思路:我们把一行中连续的泥地看成整体,并把所有横的整体里的点编成一个 ...

  7. Golang模拟客户端POST表单功能文件上传

    客户端通过multipart.Write把文件的文本流写入一个缓存中,然后调用http的Post方法把缓存传到服务器. package main import ( "bytes" ...

  8. HDFS 的垃圾回收配置

    HDFS的垃圾回收  的默认配置的 0,也就是说,如果你不小心误删除了某样东西,那么这个操作是不可恢复的. 但是如果配置了HDFS的垃圾回收机制,那么删除的东西就可以在垃圾箱中保存一段你配置的时间,等 ...

  9. 51nod 1275 连续字段的差异(单调队列)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1275 题意: 思路: 固定某个端点,然后去寻找满足能满足要求的最大区间, ...

  10. HDU 5143 NPY and arithmetic progression(思维)

    http://acm.hdu.edu.cn/showproblem.php?pid=5143 题意: 给定数字1,2,3,4.的个数每个数字能且仅能使用一次,组成多个或一个等差数列(长度大于等于3), ...