在多个脚本中使用相同的变量

时间:2019-03-21 09:55:17

标签: bash shell

在依次调用的多个脚本中使用相同的bash变量(不是环境变量)的最佳实践是什么?是否应该在每个脚本或函数中都定义此变量,以使其原子可重用?

例如,假设我有一个脚本可生成functions.sh脚本,该脚本具有许多较小的可重用功能。

#script_1

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

country="${1}"

. ${DIR}/functions.sh

function_1
function_2 ${country}

#functions.sh

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

function_1() {
echo "The country is ${country}"
}

function_2(){
local country="${1}"

if [[ ${country^^} == "UK" ]]; then
    echo "Fish and Chips"
else
    echo "Try local food"
fi
}

我的问题是:${country}变量是否应在functions.sh源文件中的每个原子函数中本地定义?

调用这些函数时,${country}已在初始脚本中定义,因此我不必将其作为参数传递。我认为这些脚本中的每个脚本都不应依赖可能先前定义的某个变量,而应该通过参数为它们提供所需的所有信息,以便可以轻松地重用它们。

还应该将其定义为country还是COUNTRY

0 个答案:

没有答案