当前位置: 首页 > wzjs >正文

免费国外网站江西seo推广软件

免费国外网站,江西seo推广软件,商城网站源码下载,房地产网站建设公司在bash shell 函数传递数组的问题2 引入 nameref 特性,bash shell 版本 较新的版本 ,可以使用 nameref 来解决 数组传递的问题。 在函数中如何 传递 传递数组变量 # !/bin/bash # array variable to function test # function testit {# 定义变量 lo…

在bash shell 函数传递数组的问题2

引入 nameref 特性,bash shell 版本 较新的版本 ,可以使用 nameref 来解决 数组传递的问题。

在函数中如何 传递 传递数组变量

# !/bin/bash
# array variable to function test
# 
function testit {# 定义变量 local newarray# 重新构建一个新的数组 # newarray=(`echo "$@"`)newarray=("$@")echo "The new array value is: ${newarray[*]}"
}myarray=(1 2 3 4 5)
echo "The original array is ${myarray[*]}"
# 注意这里传递方式 是把整个数组进行传递
testit ${myarray[*]}
testit "${myarray[@]}"

这种方式 就是把整个数组全部进入传入, 在函数内部重新构建 这个数组。 缺点也很明显,如果我需要传递两个数组呢? 如果想传递两个变量,有数组和其他的变量呢?

如果你的shell 版本 大于等于5.0 ,可以支持 nameref 变量引用

# 查看 bash  version
bash --version  |head -n1 
GNU bash, version 5.2.37(1)-release (x86_64-apple-darwin22.6.0)

nameref 特性是在 Bash 4.3 版本中引入的。这个特性允许你创建一个变量作为另一个变量的引用,从而可以通过该引用变量来间接访问和修改目标变量的值。

#!/bin/bashfunction testit {# 接受 数组名 需要使用 -n 这个选项 local -n thisarray="${1}"  # 传递给函数的是数组名,所以使用 -n 参数,nameref 变量引用 echo "The received array is ${thisarray[*]}"
}myarray=(1 2 3 4 5)
echo "The original array is: ${myarray[*]}"
# 传递给函数的是数组名,所以使用 -n 参数,nameref 变量引用 
# $myarray 只会取数组第一个元素的值,也就是 1  是不对的....
testit myarray

真实的样例

我希望删除 不同命名空间的 相同的secret , 这个命名空间和secrets 就是两个不同的数组,如果每一个都重复写,脚本就需要 写 M* N 个命令, 所以我想通过数组的形式 传入的function 中 来执行删除操作。

#!/bin/bash
# description: 删除指定命名空间下的指定 Secret, 需要Bash 4.3 及以上版本中才引入的 nameref 特性
# bash --version  |head -n1 
# GNU bash, version 5.2.37(1)-release (x86_64-apple-darwin22.6.0)
# author: frank
# date: 2025-07-03
# usage:  bash delete_secret_senior.sh# 函数定义:批量删除多个命名空间中的 Secrets
delete_secrets_in_namespaces() {local -n secrets_array=$1     # 使用 nameref 引用传入的 Secret 数组local -n namespaces_array=$2  # 使用 nameref 引用传入的 Namespace 数组for ns in "${namespaces_array[@]}"; doecho "Processing namespace: ${ns}"for secret in "${secrets_array[@]}"; doif kubectl get secret "${secret}" -n "${ns}" &> /dev/null; thenecho "Deleting secret '${secret}' in namespace '${ns}'..."# debug,not execute true command# kubectl delete secret "${secret}" -n "${ns}"if [ $? -eq 0 ]; thenecho "✅ Secret '${secret}' deleted successfully from namespace '${ns}'."elseecho "❌ Failed to delete secret '${secret}' from namespace '${ns}'."fielseecho "⚠️ Secret '${secret}' not found in namespace '${ns}', skipping deletion."fidonedone
}# 定义要删除的 Secret 名称数组
SECRETS=("acr-zhihe-secret-public" "acr-zhihe-secret-internal")# 定义命名空间数组(支持多个)
NAMESPACES=("dev" "test" "prod" )# 调用函数
delete_secrets_in_namespaces SECRETS NAMESPACESecho "Secret deletion process completed."

总结:

shell 脚本中数组作为函数参数, 如果bash shell 版本 在5.0 以上 ,可以使用nameref 特性 会比较方便一点。 不需要重新创建数组 来解决数组在函数中作为参数的问题。

分享快乐,留住感动. '2025-07-07 23:00:52' --frank
http://www.dtcms.com/wzjs/346983.html

相关文章:

  • 上海网站建设套餐seo有哪些经典的案例
  • 网站病毒怎么做互联网平台有哪些
  • 营销型网站设计服务网上销售平台怎么做
  • 做私人网站nba最新消息新闻
  • 做网站私活网络营销方案策划
  • 企业建设网站优势关键词优化排名软件
  • 怎么用默认程序做网站成品网站建站空间
  • 网站开发税收标准百度信息流怎么做效果好
  • 学会网站建设吴中seo网站优化软件
  • 梁山县城市建设局网站中国今天刚刚发生的新闻
  • 临安城市建设公司网站营销策划方案
  • 网站设置怎么调百度seo sem
  • 汕头市通信建设管理局网站惠州市seo广告优化营销工具
  • 怎么做家具定制网站广州竞价托管代运营
  • 做外汇网站代理抖音seo代理
  • 圆柱滚子轴承企业网站建设百度客服24小时人工电话
  • 多个域名 指向同一个网站百度客服人工电话多少
  • 电脑上怎样进入中国建设银行网站企业营销策划实训报告
  • 服装网站怎么做行业数据统计网站
  • python线上编辑器手机优化管家
  • ps响应式网站设计尺寸海南百度总代理
  • 做营销网站建设知识营销
  • 移动吉生活app下载seo优化技术
  • 怎么做免费公司网站线上平台推广方案
  • 潍坊 网站建设武汉java培训机构排名榜
  • 下载应用市场百度刷排名seo软件
  • 东昌府做网站国际时事新闻
  • wordpress外贸网站百度收录提交网站后多久收录
  • b2b网站建设开发互联网推广平台有哪些公司
  • 厦门做网站seo专门开发小程序的公司