[Linux][Shell][Shell函数]详细讲解
创始人
2024-11-30 20:34:34
0

目录

  • 1.创建函数
  • 2.执行函数
  • 3.给函数传入参数
  • 4.返回值
  • 5.函数中处理变量
    • 1.全局变量
    • 2.局部变量


1.创建函数

  • 语法:关键字 或 C风格
    function name  { 	commands }  name() { 	commands } 

2.执行函数

  • 执行Shell函数,直接写函数名即可,无需添加其他内容
  • 函数必须先定义,再执行,Shell脚本自上而下加载
  • 函数体内定义的变量,称之为局部变量
    • 函数内,使⽤local关键字,定义局部变量
  • 函数体内需要添加return语句,作⽤是退出函数,且赋予返回值给调⽤该函数的程序
  • return语句和exit不同
    • return:结束函数的执⾏,返回⼀个(退出值、返回值)
    • exit:结束Shell环境,返回⼀个(退出值、返回值)给当前的shell
  • 函数如果单独写⼊⼀个⽂件⾥,需要⽤source读取
    • 本质:读取到当前环境变量中

3.给函数传入参数

  • 传参和调用形势类似于在命令行中给一个脚本传入参数
    SnowK() { 	echo "传入的参数为$1 $2 $3, 共 $# 个" }  SnowK I am DieSnowK 
  • 示例:URL检测脚本
    #!/bin/bash  Usage() {     echo "Usage: $0 url"     exit 1 }  # 程序开发的习惯,设置一个入口函数,对需要执行的函数统一管理 CheckUrl() {     wget --spider -q -o /dev/null --tries=1 -T 5 $1      if [ $? -eq 0 ]     then         echo "$1 is Yes"     else         echo "$1 is No"     fi }  main() {     if [ $# -ne 1 ]     then         Usage     fi      CheckUrl $1 }  # $* -> 将所有传入进来的参数,当作一个整体,是常见用法 main $* 

4.返回值

  • 函数结束,有状态码
    • 通过$?获得
    • return可以制定特殊的退出状态码
  • 这种方式有一个
    • 函数结束后应⽴即取返回值
      • 否则会被覆盖丢失
    • 退出状态码在0~255之间

5.函数中处理变量

1.全局变量

  • 默认情况下,脚本⾥定义的任何变量都是全局变量,只要不是写在函数体内

2.局部变量

  • ⽆需在函数中使⽤全局变量,函数内部使⽤的任何变量都可以被声明为局部变量,为了实现这⼀点,只需要加上local关键字即可
    func() {     local temp=$[ $value + 5 ]     result=$[ $temp * 2 ] } 

相关内容

热门资讯

一分钟了解“链接金花房卡哪里买... 皇豪互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
两秒就懂!微信群链接拼三张房卡... 微信游戏中心:拼三张房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信拼三张房...
一分钟推荐“金花房卡专卖店联系... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
两秒就懂!微信群拼三张房间卡怎... 微信游戏中心:拼三张房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信拼三张房...
分享!微信买链接牛牛房卡/新皇... 微信游戏中心:牛牛房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
一分钟了解“正版金花房卡批发渠... 九尾大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
两秒就懂!微信牛牛房卡链接在哪... 微信游戏中心:斗牛房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
一分钟推荐“如何购买金花房卡普... 新乐乐金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
分享!微信牛牛房卡如何购买/新... 微信游戏中心:斗牛房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
两秒就懂!想找个微信牛牛房卡在... 微信游戏中心:牛牛房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
终于找到“微信链接牛牛群房卡怎... 新速度是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来...
两秒就懂!微信群炸金花房间怎么... 微信游戏中心:炸金花房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信炸金花房...
金花房卡在哪里能弄到/微信斗牛... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
分享!微信玩炸金花游戏房卡在哪... 微信游戏中心:炸金花房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信炸金花房...
两秒就懂!微信里面斗牛链接房卡... 微信游戏中心:斗牛房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
微信链接金花房卡怎么弄/微信链... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
两秒就懂!微信上链接牛牛房卡,... 微信游戏中心:斗牛房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
分享!炸金花房卡哪里买/炫龙大... 微信游戏中心:炸金花房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信炸金花房...
一分钟了解“金花房卡购买渠道/... 新天道是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享...
两秒就懂!想找个微信牛牛房卡在... 微信游戏中心:斗牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...