shell函数
时间:2022-07-24
本文章向大家介绍shell函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
函数的语法
有两种格式可以用来在shell脚本中创建函数,第一种格式采用关键字function,后跟分配给该代码块的函数名 name 属性定义了赋予函数的唯一名称,脚本中定义的每个函数都必须有一个唯一的名称
function name {
commands
}
或者
name() {
commands
}
实现函数
[root@linux /]# vim xxx.sh
#!/bin/bash
function www {
echo "Hello world"
}
www
[root@linux /]# sh xxx.sh
Hello world
调用函数
[root@linux /]# vim xxx.sh
#!/bin/bash
function we() {
echo "Hello world"
}
www=1
while [ $www -le 3 ]
do
we # 调用函数
www=$[ $www + 1 ]
done
[root@linux /]# sh xxx.sh
Hello world
Hello world
Hello world
函数传参
函数传参调用语法: 函数名 参数1 参数2 ....
[root@linux /]# vim xxx.sh
#!/bin/bash
function www(){
echo "第一个参数是 $1"
echo "第二个参数是 $2"
echo "第一个参数为 $3"
}
www $1 $2 $3
[root@linux /]# sh xxx.sh 10 20 30
第一个参数是 10
第二个参数是 20
第一个参数为 30
返回值
默认退出状态码 默认情况下,函数的退出状态码就是函数最后一条命令的返回的退出状态码,用 $? 查看
[root@linux /]# vim xxx.sh
#!/bin/bash
function www(){
echo "Helo world"
}
www
echo $?
[root@linux /]# sh xxx.sh
Helo world
0
使用return命令(返回函数特定状态码)
[root@linux /]# vim xxx.sh
#!/bin/bash
function www(){
echo "Helo world"
return 3
}
www
echo $
[root@linux /]# sh xxx.sh
Helo world
3
把函数值赋给变量使用
[root@linux /]# vim xxx.sh
#!/bin/bash
function www() {
read -p "输入一个数值:" value
echo $[ $value * 2 ]
}
we=`www`
echo "目前的数值是$we"
[root@linux /]# sh xxx.sh
输入一个数值:2
目前的数值是4
函数中使用变量
[root@linux /]# vim xxx.sh
#!/bin/bash
a=$1
b=$2
function www() {
echo $[a + b]
}
www
[root@linux /]# sh xxx.sh 10 11
21
变量的作用域
Shell 变量的作用域可以分为三种:
全局变量:在当前shell中任何地方使用的变量
局部变量:只能在函数内使用的变量
环境变量:可以在任何shell中使用的变量
全局变量 任何地方都生效的变量,默认情况下,脚本主体内定义全局变量,函数内可以用,函数外也可以
[root@linux /]# vim xxx.sh
#!/bin/bash
function www(){
xxx=$[a+b]
}
read -p "输入第一个数值:" a
read -p "输入第二个数值:" b
www
echo "两个数值相加等于:$xxx"
[root@linux /]# sh xxx.sh
输入第一个数值:10
输入第二个数值:11
两个数值相加等于:21
局部变量 shell中支持自定义函数,与其他语言不同的是,shell中定义的变量默认也是全局变量,在函数外一样可以调用,想要定义局部变量,需要在定义时在变量名前加上local命令,这样定义的变量就是局部变量,函数外就不能访问了
[root@linux /]# vim xxx.sh
#!/bin/bash
function www(){
local xxx="Hello wolrd"
echo $xxx
}
www
[root@linux /]# sh xxx.sh
Hello wolrd
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法