在依次调用的多个脚本中使用相同的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
?