将数组传递给bash脚本 - array_name [@]:找不到命令

时间:2018-01-18 02:07:55

标签: bash parameter-passing function-parameter

我必须在几个数组中选择一个随机数据。所以我创建了一个接管数组并返回随机值的函数。

这是我的代码,

./ pick_data.sh

pick_random_data()
{
    # seed random generator
    RANDOM=$$$(date +%s)

    #take array as parameter
    declare -a argArr="${!1}"

    # pick a random entry from the domain list to check against
    randomResult=${argArr[$RANDOM % ${#argArr[@]}]}

    echo "$randomResult"    
}


main()
{

    local user_agent=(
        "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8"
        "INI_Ibis"
        "tving/5.2.6.4720 CFNetwork/893.14.2 Darwin/17.3.0"
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063"
        )

    result=pick_random_data user_agent[@]

    echo $result
}

main

错误是

test.sh: line 27: user_agent[@]: command not found

我推荐这些帖子,

  

Passing arrays as parameters in bash

     

https://www.christianroessler.net/tech/2015/bash-array-random-element.html

我不知道我错过了什么。

0 个答案:

没有答案