gpt4 book ai didi

shell - 将数组传递给shell脚本的函数

转载 作者:行者123 更新时间:2023-12-03 18:23:55 27 4
gpt4 key购买 nike

如何在shell脚本中将数组作为函数传递?
我写了以下代码:

function test(){
param1 = $1
param2 = $2
for i in ${$param1[@]}
do
for j in ${param2[@]}
do
if($(i) = $(j) )
then
echo $(i)
echo $(j)
fi
done
done
}

但我收到 line 1: ${$(param1)[@]}: bad substitution

最佳答案

有多个问题:

  • = 周围不能有空格分配变量时
  • 您的 if 语句语法错误
  • 数组传递不正确
  • 尽量不要调用你的函数 test因为这是一个 shell 命令

  • 这是固定版本:
    myFunction(){
    param1=("${!1}")
    param2=("${!2}")
    for i in ${param1[@]}
    do
    for j in ${param2[@]}
    do
    if [ "${i}" == "${j}" ]
    then
    echo ${i}
    echo ${j}
    fi
    done
    done
    }

    a=(foo bar baz)
    b=(foo bar qux)
    myFunction a[@] b[@]

    关于shell - 将数组传递给shell脚本的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6533364/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com