无法在shell脚本中的函数外部进行数组值

时间:2018-05-10 02:08:21

标签: linux bash shell unix sh

我有以下脚本名为run.sh:

#This is run.sh

prerequisite(){

config_file=./../config/config.sh
source $config_file

    echo "VAR1 inside prerequisite: $VAR1"
    echo "country currency inside prerequisite: $country_currency[@]"
}

LIST_OF_COUNTRIES=`cat country_list.txt`

transform() {
    local country="$@"
    prerequisite
    echo "VAR1 inside transform: $VAR1"
    echo "country currency inside transform: $country_currency[@]"
}

transform ${LIST_OF_COUNTRIES[@]} &
transformpid=$!

wait $transformpid

echo "Complete"

我的config.sh文件的内容是:

VAR1="value1"
declare -a country_currency=( "INR" "USD" "JPY" )

当我运行run.sh文件时, 我得到以下输出:

VAR1 inside prerequisite: value1
country currency inside prerequisite: INR USD JPY

VAR1 inside transform: value1
country currency inside transform:

正如我从输出中看到的,我从配置.sh文件中获取的所有变量的值正在进入先决条件函数。 而数组中的值未被提取到转换函数中。这只是一小段代码。我正在多次调用先决条件函数来动态地在我的实际代码中获取值。我在这里做错了什么?不是变量的范围和我声明的数组,应该是相同的吗?

0 个答案:

没有答案