我有以下脚本名为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文件中获取的所有变量的值正在进入先决条件函数。 而数组中的值未被提取到转换函数中。这只是一小段代码。我正在多次调用先决条件函数来动态地在我的实际代码中获取值。我在这里做错了什么?不是变量的范围和我声明的数组,应该是相同的吗?