我正在跟踪 Android 构建系统,发现了一些有趣的东西。
“local T dir f”是什么意思?
function addcompletions()
{
local T dir f
# Keep us from trying to run in something that isn't bash.
if [ -z "${BASH_VERSION}" ]; then
return
fi
# Keep us from trying to run in bash that's too old.
if [ ${BASH_VERSINFO[0]} -lt 3 ]; then
return
fi
dir="sdk/bash_completion"
if [ -d ${dir} ]; then
for f in `/bin/ls ${dir}/[a-z]*.bash 2> /dev/null`; do
echo "including $f"
. $f
done
fi
}
最佳答案
本地 T 目录 f
在 bash 手册中:
* '本地' 本地 [选项] 名称[=值] ... 对于每个参数,都会创建一个名为 NAME 的局部变量,并且 分配的值。 OPTION 可以是任何接受的选项 '宣布'。 'local' 只能在函数内使用;它使 变量 NAME 的可见范围仅限于该函数 和它的 child 。除非使用“本地”,否则返回状态为零 在函数外,提供了一个无效的 NAME,或者 NAME 是一个 只读变量。
和
* '声明' 声明 [-aAfFilrtux] [-p] [NAME[=VALUE] ...]
如您所见,声明没有选项“T”。同时,在android的build/envsetup.sh中,“T”是这样使用的:T=$(gettop),意思是android源码目录的顶层目录。
所以,我认为这只是一个错误。它应该是“local dir f”
关于android build/envsetup.sh addcompletions() "local T dir f"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142495/