linux - 将关联数组作为 Bash 的参数传递

标签 linux bash shell

<分区>

将关联数组作为参数传递给函数以避免重复迭代大量关联数组的最佳方法是什么?这样我就可以为函数提供我选择的任何数组来打印。这是我所拥有的:

# Snippet

declare -A weapons=(
  ['Straight Sword']=75
  ['Tainted Dagger']=54
  ['Imperial Sword']=90
  ['Edged Shuriken']=25
)

print_weapons() {
  for i in "${!weapons[@]}"; do
    printf "%s\t%d\n" "$i" "${weapons[$i]}"
  done
}

print_weapons

最佳答案

可以引用local -n

 declare -A weapons=(
 ['Straight Sword']=75
 ['Tainted Dagger']=54
 ['Imperial Sword']=90
 ['Edged Shuriken']=25
 )
 
 print_weapons() {
     local -n array=$1
     for i in "${!array[@]}"; do
         printf "%s\t%d\n" "$i" "${array[$i]}"
     done
 }
 
 print_weapons weapons

关于linux - 将关联数组作为 Bash 的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557434/

相关文章:

java - 如何从 Java 在 Mac OS X 上的 Microsoft Word 中打开文件?

linux - OpenVPN 客户端无法在 Windows 计算机上运行?

linux - 从命令行检测您所在的工作区

linux - wget 中的 HTTP 请求占用了大部分时间

c++ - Execlp() 不接受参数列表,只接受命令。 UNIX/LINUX编程

linux - 调试 cdc-acm 内核模块

java - 如何从java程序调度shell脚本

linux shell - 检查今天的文件,如果今天没有就上传到hdfs 如果不是今天就不要上传。给出文件已存在的消息

linux - 如何将密码传递给bash脚本

linux - 编写脚本来执行命令?