shell 脚本自定义函数 与参数传递

shell脚本语言也是可以自定义函数的, shell里面的函数定义形式和js有点类似(参数除外), 他的定义方式如下:

shell自定义函数语法:

function  xxxFn(){
    # shell脚本内容
}

这里也可以省略function,直接写成

xxxFn(){
    # shell脚本内容
}

 shell自定义函数使用, 参数传递和接收

shell中的函数中的参数传递和接收 和使用一个独立的shell脚本是一样的.  

自定义函数使用:

直接在要使用的地方 写上自定义的函数名即可, 这个和使用linux里面的命令是一样的.  如: xxxFn

自定义函数参数传递:

参数传递和使用独立shell脚本和命令行工具的参数传递是一样的. 直接在函数名后面以空格隔开后传递即可, 注意参数最好用双引号引起来

如:  xxxFn  "var1"  "var2"

自定义函数 参数接收

自定义函数的参数接收与shell脚本中接收参数时一样的, 使用 $1 接收第一个参数, $2接收第二个参数 ... $n 接收第n个参数.   使用   "$@" 来接收所有的参数, $0是当前脚本的名称

xxxFn(){
    # 定义本地变量
    local v1 = $1
    local v2 = $2
    echo "你给的第一个参数是 ${v1} , 第二个参数是: ${v2}"
}

# 自定义函数使用

xxxFn "123"  "456"

上面的示例输出结果为: 你给的第一个参数是 123 , 第二个参数是: 456

自定义curl函数示例

通过自定义scurl函数 对系统中的 curl函数进行再次封装,让他默认加上我们自定义的参数

# scurl invokes `curl` with secure defaults
scurl() {
  # 这里使用 "$@" 来获取用户传递的所有参数
  curl --proto "=https" --tlsv1.2 --fail --show-error "$@"
}

# 使用自定义scurl函数 获取github项目的最新版本url
scurl -Ls -o /dev/null -w %{url_effective} https://github.com/tekintian/strutils/releases/latest

# 上面的命令会输出
# https://github.com/tekintian/strutils/releases/tag/v1.1.0

# 我们配合管道 直接获取最新发行的版本号 并赋值给shell变量
LATEST_VER = $(scurl -Ls -o /dev/null -w %{url_effective} https://github.com/tekintian/strutils/releases/latest | grep -oE '[^/]+$')


# wget的方式
wget https://github.com/tekintian/strutils/releases/latest --server-response -O /dev/null 2>&1 | awk '/^\s*Location: /{VER_URL=$2} END{ print VER_URL}' | grep -oE "[^/]+$"

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值