前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell函数

shell函数

作者头像
剧终
发布2020-08-26 22:11:12
4070
发布2020-08-26 22:11:12
举报

函数的语法

有两种格式可以用来在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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数的语法
  • 实现函数
  • 调用函数
  • 函数传参
  • 返回值
  • 把函数值赋给变量使用
  • 函数中使用变量
  • 变量的作用域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档