函数的返回值用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. OCX ClassId查看

    1.源码中查看 2.注册完成后在注册表中查看 a.windows键+R  打开“运行” b.输入“regedit”  ,回车 c. d.再输入框中输入ocx名称,点击查找下一个 e.展开,点击CLSI ...

  2. ssm项目中遇到微信用户名称带有表情,插入失败问题

    ssm项目中遇到微信用户名称带有表情,插入失败问题 问题 Mysql的utf8编码最多3个字节,而Emoji表情或者某些特殊字符是4个字节. 因此会导致带有表情的昵称插入数据库时出错. 解决方法 一. ...

  3. oracle单行函数 之 字符函数

    Upper(字符串 / 列):将输入的字符串变成大写 Lower(字符串 / 列):将输入的字符串变成小写 Initcap(字符串 / 列):开头首字母大写 Length(字符串 / 列):字符串长度 ...

  4. Latex 左右引号

    参考: LaTeX技巧218:LaTeX如何正确输入引号:双引号""单引号'' Latex 左右引号 在latex中加引号时,使用""的输出为两个同向的引号: ...

  5. 2、Python函数详解(0601)

    函数的基础概念 1.函数是python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构: 2.函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件: 3.函数用于将相关功能打包并参 ...

  6. python学习 day018打卡 反射

    本节主要内容: 1.isinstance,type,issubclass 2.区分函数和方法 3.反射(重点) 一.isinstance,type,issubclass issubclass():判断 ...

  7. MInio python

    # Install Minio library. # $ pip install minio # # Import Minio library. from minio import Minio # I ...

  8. File类文件的常见操作

    boolean exists() 判断文件或者目录是否存在 boolean isFile()  判断是否是文件 boolean isDirectory() 判断是否是目录 String getPath ...

  9. CSS垂直居中查询宝典

    一.垂直居中的用处 设计稿需求 当我们抱怨设计反复不定的时候,试着理解一下.每一位开发者也会是一位用户,请多多用'用户'的角色去开发.就比如下面这图,你会更稀饭哪种格式呢? 如果我们使用一个webap ...

  10. sklearn中的train_test_split (随机划分训练集和测试集)

    官方文档:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html ...